diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
index 86b1c9b..8a8a8db 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
@@ -16,20 +16,36 @@
 "
 
 RDEPENDS_packagegroup-meta-filesystems = "\
-    ntfs-3g-ntfsprogs ifuse sshfs-fuse \
-    logfsprogs owfs simple-mtpfs \
-    unionfs-fuse fuse-exfat yaffs2-utils \
+    ifuse \
+    logfsprogs \
+    fuse-exfat \
+    owfs \
     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "smbnetfs", "", d)} \
-    "
+    simple-mtpfs \
+    yaffs2-utils \
+    ntfs-3g-ntfsprogs \
+    httpfs2 \
+    unionfs-fuse \
+    sshfs-fuse \
+"
 
 RDEPENDS_packagegroup-meta-filesystems-support = "\
-    physfs fuse \
-    "
+    fuse3 \
+    fuse \
+    physfs \
+"
 
 RDEPENDS_packagegroup-meta-filesystems-utils = "\
-    xorriso aufs-util xfsprogs \
-    f2fs-tools exfat-utils udevil \
+    aufs-util \
+    exfat-utils \
+    fatcat \
     xfsdump \
-    "
+    f2fs-tools \
+    fatresize \
+    udevil \
+    ufs-utils \
+    xfsprogs \
+    xorriso \
+"
 
 EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.2.bb b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.3.bb
similarity index 94%
rename from meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.2.bb
rename to meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.3.bb
index 357a1de..8ef9ee1 100644
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.9.3.bb
@@ -13,7 +13,7 @@
 
 SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.xz \
 "
-SRC_URI[sha256sum] = "6999b6d48e7c0a79628fa901f6e66def3513cab4ffdd8097821e7dc3cdeae08a"
+SRC_URI[sha256sum] = "cd45270a064d2ae14f17cfc914f1555106d6c5091025b0b2698b860399d4ede6"
 
 S = "${WORKDIR}/fuse-${PV}"
 
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.7.0.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.8.0.bb
similarity index 96%
rename from meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.7.0.bb
rename to meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.8.0.bb
index 9efcc56..b02ec6f 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.7.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.8.0.bb
@@ -12,7 +12,7 @@
            file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \
            file://0001-support-usrmerge.patch \
            "
-SRC_URI[sha256sum] = "8f2348a68a686a3f4491dda5d62dd32d885fbc52d32875edd41e2c296e7b4f35"
+SRC_URI[sha256sum] = "8ef46ed9e6bb927f407f541dc4324857c908ddf1374265edc910d23724048c6b"
 inherit autotools-brokensep
 
 PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
diff --git a/meta-openembedded/meta-gnome/conf/layer.conf b/meta-openembedded/meta-gnome/conf/layer.conf
index 7aa9507..7706b7c 100644
--- a/meta-openembedded/meta-gnome/conf/layer.conf
+++ b/meta-openembedded/meta-gnome/conf/layer.conf
@@ -18,3 +18,9 @@
 LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer"
 
 LAYERSERIES_COMPAT_gnome-layer = "thud warrior zeus dunfell"
+
+SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\
+  faenza-icon-theme->gdk-pixbuf \
+  faenza-icon-theme->gtk+3 \
+"
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb
index 75f1737..afd9146 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_3.36.2.bb
@@ -36,3 +36,4 @@
     ${PYTHON_SITEPACKAGES_DIR} \
 "
 
+RRECOMMENDS_${PN} += "source-code-pro-fonts"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.44.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.44.1.bb
index ec0ac2b..ad5dab5 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.44.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.44.1.bb
@@ -62,7 +62,7 @@
 PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd"
 
 # needs meta-filesystems
-PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse"
+PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse3"
 
 # libcdio-paranoia recipe doesn't exist yet
 PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
index 29b9fc6..a3e4798 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_3.34.6.bb
@@ -52,6 +52,7 @@
 PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
 PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
 PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
+# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
 PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire-0.2"
 PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
 PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
index c66c93e..5505626 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
@@ -12,15 +12,20 @@
         git://linuxtv.org/libcamera.git;protocol=git \
 "
 
-SRCREV = "5f2f9406cebc668f0d69007d1ea59ef3c56ef28c"
+SRCREV = "1e8c91b65695449c5246d17ba7dc439c8058b781"
 
-PV = "202006+git${SRCPV}"
+PV = "202008+git${SRCPV}"
 
 S = "${WORKDIR}/git"
 
 DEPENDS = "python3-pyyaml-native udev gnutls boost chrpath-native"
 DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}"
 
+PACKAGES =+ "${PN}-gst"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+
 RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"
 
 inherit meson pkgconfig python3native
@@ -44,4 +49,4 @@
 
 FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
 FILES_${PN} += " ${libdir}/libcamera.so"
-
+FILES_${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
index 62d1ad7..2db30dd 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
@@ -84,4 +84,7 @@
 # Mycroft can do this itself on the target, but it's quicker to do it here
 RDEPENDS_${PN} += "mimic"
 
+# pgrep is used by stop-mycroft.sh
+RDEPENDS_${PN} += "procps"
+
 SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
index e0cb415..2bf8877 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
@@ -20,33 +20,87 @@
 "
 
 RDEPENDS_packagegroup-meta-multimedia = "\
-    libdvbpsi libdc1394 gstd gst-shark \
-    bigbuckbunny-720p tearsofsteel-1080p bigbuckbunny-1080p bigbuckbunny-480p \
-    openal-soft dleyna-core dleyna-renderer dleyna-server dleyna-connector-dbus \
-    alsa-equal libdvdnav libmusicbrainz tinyalsa \
-    fluidsynth cdparanoia vorbis-tools tremor caps libao libavc1394 \
-    opusfile gerbera libdvdcss webrtc-audio-processing \
-    rtmpdump libopenmpt schroedinger mpd mpc libmpdclient \
-    ncmpc libmpd dcadec libiec61883 \
-    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "", "", d)} \
-    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna vlc", "", d)} \
-    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "vo-aacenc sox libde265", "", d)} \
-    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "streamripper", "", d)} \
-    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "openh264 opencore-amr faac vo-amrwbenc", "", d)} \
-    "
+    alsa-equal \
+    caps \
+    cdparanoia \
+    dcadec \
+    dleyna-connector-dbus \
+    dleyna-core \
+    dleyna-renderer \
+    dleyna-server \
+    dvb-apps \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "faac", "", d)} \
+    fdk-aac \
+    gerbera \
+    libao \
+    libavc1394 \
+    libdc1394 \
+    libdvbpsi \
+    libdvdnav \
+    libiec61883 \
+    fluidsynth \
+    libmusicbrainz \
+    libmpdclient \
+    mpc \
+    mpd \
+    ncmpc \
+    libmpd \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "opencore-amr vo-aacenc vo-amrwbenc", "", d)} \
+    gst-shark \
+    gstd \
+    rtmpdump \
+    bigbuckbunny-1080p \
+    bigbuckbunny-480p \
+    bigbuckbunny-720p \
+    tearsofsteel-1080p \
+    schroedinger \
+    projucer \
+    libcamera \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libde265 openh264", "", d)} \
+    vorbis-tools \
+    libdvbcsa \
+    libopenmpt \
+    mimic \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna", "", d)} \
+    mycroft \
+    openal-soft \
+    opusfile \
+    libdvdcss \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "vlc", "", d)} \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "sox streamripper", "", d)} \
+    tinyalsa \
+    tremor \
+    webrtc-audio-processing \
+    ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "x265", "", d)} \
+"
+RDEPENDS_packagegroup-meta-multimedia_remove_libc-musl = "projucer"
 
 RDEPENDS_packagegroup-meta-multimedia-connectivity = "\
-    rygel gupnp gupnp-igd gssdp gupnp-dlna gupnp-av libupnp \
+    gssdp \
+    gupnp-av \
+    gupnp-dlna \
+    gupnp-igd \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gupnp-tools", "", d)} \
-    "
-
+    gupnp \
+    libupnp \
+    rygel \
+"
 RDEPENDS_packagegroup-meta-multimedia-dvb = "\
-    oscam "
+    oscam \
+    tvheadend \
+"
 
 RDEPENDS_packagegroup-meta-multimedia-mkv = "\
-    libmatroska libebml \
-    "
+    libebml \
+    libmatroska \
+"
 
 RDEPENDS_packagegroup-meta-multimedia-support = "\
-    libmediaart libmediaart-2.0 gst-instruments libsrtp crossguid \
-    "
+    crossguid \
+    libmediaart-2.0 \
+    libmediaart \
+    gst-instruments \
+    libsrtp \
+"
+# devel headers/libraries only packages
+# libsquish
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
index d026c69..2f1fda3 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
@@ -10,7 +10,7 @@
 
 DEPENDS = "orc-native orc"
 
-SRC_URI = "http://www.diracvideo.org/download/schroedinger/${BP}.tar.gz \
+SRC_URI = "https://download.videolan.org/contrib/${BPN}/${BP}.tar.gz \
            file://configure.ac.patch"
 
 SRC_URI[md5sum] = "da6af08e564ca1157348fb8d92efc891"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb b/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
index a84fd9a..9b69601 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
@@ -8,7 +8,7 @@
 SRC_URI[md5sum] = "2b804bc1bf6d2f2afaa526d02df7c0a2"
 SRC_URI[sha256sum] = "5fc3cee3361ca1615af862364c480593171d0c54ec156de79fc421e31ae21277"
 
-RDEPENDS_${PN} = "openssh"
+RDEPENDS_${PN} = "ssh"
 
 CFLAGS_prepend = "-I${WORKDIR}/build "
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch
new file mode 100644
index 0000000..3b341e0
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch
@@ -0,0 +1,32 @@
+From 9515448761739d6186e7d07da5b47e368753528c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 1 Sep 2020 11:34:33 -0700
+Subject: [PATCH] make: Pass LDFLAGS when building shared objects
+
+OE passes flags like hash-style via LDFLAGS which alters the linker
+defaults, its important to have LDFLAGS in link step even if compiler
+driver is used to do linking
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mk/Rules.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mk/Rules.mk b/mk/Rules.mk
+index b480bd6..db65125 100644
+--- a/mk/Rules.mk
++++ b/mk/Rules.mk
+@@ -344,7 +344,7 @@ $(BEARSSLLIB): $(OBJDIR) $(OBJ)
+ 	$(AR) $(ARFLAGS) $(AROUT)$(BEARSSLLIB) $(OBJ)
+ 
+ $(BEARSSLDLL): $(OBJDIR) $(OBJ)
+-	$(LDDLL) $(LDDLLFLAGS) $(LDDLLOUT)$(BEARSSLDLL) $(OBJ)
++	$(LDDLL) $(LDDLLFLAGS) $(LDFLAGS) $(LDDLLOUT)$(BEARSSLDLL) $(OBJ)
+ 
+ $(BRSSL): $(BEARSSLLIB) $(OBJBRSSL)
+ 	$(LD) $(LDFLAGS) $(LDOUT)$(BRSSL) $(OBJBRSSL) $(BEARSSLLIB)
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
index a0f64e9..1102bb9 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
@@ -18,6 +18,8 @@
 
 SECTION = "libs"
 
+inherit lib_package
+
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1fc37e1037ae673975fbcb96a98f7191"
 
@@ -25,6 +27,7 @@
 SRC_URI = "git://www.bearssl.org/git/BearSSL;protocol=https;nobranch=1 \
 	   file://0001-conf-Unix.mk-remove-fixed-command-definitions.patch \
 	   file://0002-test-test_x509.c-fix-potential-overflow-issue.patch \
+           file://0001-make-Pass-LDFLAGS-when-building-shared-objects.patch \
 	   "
 
 # without compile errors like 
@@ -33,3 +36,11 @@
 
 S = "${WORKDIR}/git"
 B = "${S}"
+
+do_install() {
+    mkdir -p ${D}/${bindir} ${D}/${libdir}
+    install -m 0644 ${B}/build/brssl ${D}/${bindir}
+    install -m 0644 ${B}/build/libbearssl.so ${D}/${libdir}/libbearssl.so.6.0.0
+    ln -s libbearssl.so.6.0.0 ${D}/${libdir}/libbearssl.so.6
+    ln -s libbearssl.so.6.0.0 ${D}/${libdir}/libbearssl.so
+}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_9.1.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_9.1.4.bb
deleted file mode 100644
index defd342..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_9.1.4.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SECTION = "console/network"
-SUMMARY = "dhcpcd - a DHCP client"
-DESCRIPTION = "dhcpcd runs on your machine and silently configures your \
-               computer to work on the attached networks without trouble \
-               and mostly without configuration."
-
-HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9674cc803c5d71306941e6e8b5c002f2"
-
-UPSTREAM_CHECK_URI = "https://roy.marples.name/downloads/dhcpcd/"
-
-SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \
-           file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch"
-
-SRC_URI[sha256sum] = "5fe133e5497d8af6d26bd6e6b8dd48ab12d124d6cc4cefe6de6536ff97f76820"
-
-inherit pkgconfig autotools-brokensep
-
-PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-
-PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
-
-EXTRA_OECONF = "--enable-ipv4"
-
-FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch
deleted file mode 100644
index 37d2344..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From aa9e3982c1e75ad49945a62f5e262279c7a905a4 Mon Sep 17 00:00:00 2001
-From: Stefano Cappa <stefano.cappa.ks89@gmail.com>
-Date: Sun, 13 Jan 2019 01:50:52 +0100
-Subject: [PATCH] remove INCLUDEDIR to prevent build issues
-
-Upstream-Status: Pending
-
-Signed-off-by: Stefano Cappa <stefano.cappa.ks89@gmail.com>
----
- configure | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/configure b/configure
-index 6c81e0db..32dea2b4 100755
---- a/configure
-+++ b/configure
-@@ -20,7 +20,6 @@ BUILD=
- HOST=
- HOSTCC=
- TARGET=
--INCLUDEDIR=
- DEBUG=
- FORK=
- STATIC=
-@@ -72,7 +71,6 @@ for x do
- 	--mandir) MANDIR=$var;;
- 	--datadir) DATADIR=$var;;
- 	--with-ccopts|CFLAGS) CFLAGS=$var;;
--	-I|--includedir) INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }-I$var";;
- 	CC) CC=$var;;
- 	CPPFLAGS) CPPFLAGS=$var;;
- 	PKG_CONFIG) PKG_CONFIG=$var;;
-@@ -309,9 +307,6 @@ if [ -n "$CPPFLAGS" ]; then
- 	echo "CPPFLAGS=" >>$CONFIG_MK
- 	echo "CPPFLAGS+=	$CPPFLAGS" >>$CONFIG_MK
- fi
--if [ -n "$INCLUDEDIR" ]; then
--	echo "CPPFLAGS+=	$INCLUDEDIR" >>$CONFIG_MK
--fi
- if [ -n "$LDFLAGS" ]; then
- 	echo "LDFLAGS=" >>$CONFIG_MK
- 	echo "LDFLAGS+=	$LDFLAGS" >>$CONFIG_MK
--- 
-2.17.2 (Apple Git-113)
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-remove-AC_TRY_RUN.patch b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-remove-AC_TRY_RUN.patch
deleted file mode 100644
index d7ca9ff..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/0001-remove-AC_TRY_RUN.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 9d6b8321c5b46199baca907f3d42bdcaaf1958a8 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Thu, 23 May 2019 23:59:42 -0700
-Subject: [PATCH] remove AC_TRY_RUN
-
-AC_TRY_RUN doesn't work in cross compile env,
-use AC_COMPILE_IFELSE instead to fix below configure
-error:
- | checking for usuable C++11 regex... configure: error: in `/builddir/tmp/work/core2-64-poky-linux/kea/1.5.0-r0/build':
- | configure: error: cannot run test program while cross compiling
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index c880b77..dd40c7c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -580,7 +580,7 @@ AC_TRY_COMPILE([
-         AC_MSG_RESULT(no))
- 
- AC_MSG_CHECKING(for usuable C++11 regex)
--AC_TRY_RUN([
-+AC_COMPILE_IFELSE([
- #include <regex>
- #include <iostream>
- int main() {
--- 
-2.21.0
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service
deleted file mode 100644
index 91aa2eb..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kea DHCP-DDNS Server
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
-ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service
deleted file mode 100644
index b851ea7..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kea DHCPv4 Server
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/lib/kea
-ExecStart=@SBINDIR@/kea-dhcp4 -c @SYSCONFDIR@/kea/kea-dhcp4.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service b/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service
deleted file mode 100644
index 0f9f0ef..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kea DHCPv6 Server
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/lib/kea
-ExecStart=@SBINDIR@/kea-dhcp6 -c @SYSCONFDIR@/kea/kea-dhcp6.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.7.7.bb b/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.7.7.bb
deleted file mode 100644
index e25f8e6..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/kea/kea_1.7.7.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "ISC Kea DHCP Server"
-DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS."
-HOMEPAGE = "http://kea.isc.org"
-SECTION = "connectivity"
-LICENSE = "MPL-2.0 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=68d95543d2096459290a4e6b9ceccffa"
-
-DEPENDS += "kea-native"
-
-SRC_URI = "\
-    http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
-    file://0001-remove-AC_TRY_RUN.patch \
-    file://kea-dhcp4.service \
-    file://kea-dhcp6.service \
-    file://kea-dhcp-ddns.service \
-"
-SRC_URI[md5sum] = "4f8d1251fd41ef2e822a4eb3f0797d46"
-SRC_URI[sha256sum] = "0bba8b045672884a928ff4b2a8575ac5ba420eb6ba47a9338f1932bc38dcf866"
-
-inherit autotools systemd
-
-SYSTEMD_SERVICE_${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-DEBUG_OPTIMIZATION_remove_mips = " -Og"
-DEBUG_OPTIMIZATION_append_mips = " -O"
-BUILD_OPTIMIZATION_remove_mips = " -Og"
-BUILD_OPTIMIZATION_append_mips = " -O"
-
-DEBUG_OPTIMIZATION_remove_mipsel = " -Og"
-DEBUG_OPTIMIZATION_append_mipsel = " -O"
-BUILD_OPTIMIZATION_remove_mipsel = " -Og"
-BUILD_OPTIMIZATION_append_mipsel = " -O"
-
-do_configure_prepend_class-target() {
-    mkdir -p ${B}/src/lib/log/compiler/
-    ln -sf ${STAGING_BINDIR_NATIVE}/kea-msg-compiler ${B}/src/lib/log/compiler/kea-msg-compiler
-    # replace abs_top_builddir to avoid introducing the build path
-    # don't expand the abs_top_builddir on the target as the abs_top_builddir is meanlingless on the target
-    find ${S} -type f -name *.sh.in | xargs sed -i  "s:@abs_top_builddir@:@abs_top_builddir_placeholder@:g"
-    sed -i "s:@abs_top_srcdir@:@abs_top_srcdir_placeholder@:g" ${S}/src/bin/admin/kea-admin.in
-}
-
-do_install_append_class-target() {
-    install -d ${D}${systemd_system_unitdir}
-    install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
-    sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
-           -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
-           ${D}${systemd_system_unitdir}/kea-dhcp*service
-}
-
-do_install_append() {
-    rm -rf "${D}${localstatedir}"
-}
-
-PACKAGECONFIG ??= "openssl log4cplus boost"
-
-PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_TARGET}${prefix},,openssl,openssl"
-PACKAGECONFIG[log4cplus] = "--with-log4cplus=${STAGING_DIR_TARGET}${prefix},,log4cplus,log4cplus"
-PACKAGECONFIG[boost] = "--with-boost-libs=-lboost_system,,boost,boost"
-
-FILES_${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
-FILES_${PN} += "${libdir}/hooks/*.so"
-
-BBCLASSEXTEND += "native"
-
-PARALLEL_MAKEINST = ""
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.9.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb
similarity index 89%
rename from meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.9.1.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb
index 79a380a..e6240a5 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.9.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb
@@ -7,8 +7,8 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2"
-SRC_URI[md5sum] = "19ce64012bc722ad61667372fa262382"
-SRC_URI[sha256sum] = "a692fd081c19e2cc045869ab721a4fb3d7571040849a4406c4042f735232414c"
+SRC_URI[md5sum] = "42ec1793c386702bc2734ffbc8a5cff1"
+SRC_URI[sha256sum] = "8a07cbf4df09b107fe3fc41d133ee2f6cea6ef4c33ccf06c8448ad058cd96b7e"
 
 inherit autotools gettext pkgconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
similarity index 89%
rename from meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
index 5b27cfe..df48782 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
 
 SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1"
-SRCREV = "12fca29a6d4e99d1b923d6820887fe7b24226904"
+SRCREV = "3e782472d2a58d5e1b94d04eda4a364c2d257600"
 
 UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.6.11.bb b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.6.12.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.6.11.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.6.12.bb
index 3690346..36bfe09 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.6.11.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.6.12.bb
@@ -20,8 +20,8 @@
            file://install-protocol.patch \
 "
 
-SRC_URI[md5sum] = "35925c7ccd1bac87e4201b635ffa66a1"
-SRC_URI[sha256sum] = "b02d8f1368c40d5779ee125c37daf9003608eb47d7fbb04c5b938c76c1230a1f"
+SRC_URI[md5sum] = "beb8d76d6e45f1e66d711006082a631f"
+SRC_URI[sha256sum] = "548d73d19fb787dd0530334e398fd256ef3a581181678488a741a995c4f007fb"
 
 inherit systemd update-rc.d useradd cmake
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb
index 4e4217c..ac2282e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb
@@ -74,7 +74,7 @@
 PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
 PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
 # Use full featured dhcp client instead of internal one
-PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
+PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcpcd"
 PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
 PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
 PACKAGECONFIG[resolvconf] = "--with-resolvconf=${base_sbindir}/resolvconf,,,resolvconf"
diff --git a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
index 1e10c30..0e668f7 100644
--- a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
+++ b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
@@ -31,101 +31,231 @@
     "
 
 RDEPENDS_packagegroup-meta-networking-connectivity = "\
-    openconnect ez-ipupdate mosquitto sethdlc crda \
-    dibbler-server dibbler-client dibbler-requestor dibbler-relay \
-    libdnet ufw civetweb freeradius kea daq \
-    mbedtls relayd snort dhcpcd rdate vlan vpnc \
-    inetutils wolfssl lftp miniupnpd networkmanager \
-    networkmanager-openvpn rdist nanomsg python3-networkmanager \
+    crda \
+    daq \
+    adcli \
     ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth x11", "blueman", "", d)} \
+    cannelloni \
+    civetweb \
+    libdnet \
+    dibbler-client \
+    dibbler-relay \
+    dibbler-server \
+    relayd \
+    lftp \
+    sethdlc \
+    snort \
+    ufw \
+    vlan \
+    vpnc \
+    ez-ipupdate \
+    firewalld \
+    freeradius \
+    mbedtls \
+    miniupnpd \
+    mosquitto \
+    nanomsg \
+    nng \
+    netplan \
+    networkmanager-openvpn \
+    networkmanager \
+    openconnect \
+    python3-networkmanager \
+    rdate \
+    rdist \
     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "samba", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "samba", "", d)} \
-    "
+    wolfssl \
+    autossh \
+    bearssl \
+"
 
 RDEPENDS_packagegroup-meta-networking-connectivity_remove_libc-musl = "rdist"
 
 RDEPENDS_packagegroup-meta-networking-daemons = "\
-    ippool radvd autofs keepalived proftpd openhpi lldpd \
-    ptpd igmpproxy opensaf squid \
-    atftp postfix iscsi-initiator-utils vsftpd cyrus-sasl \
-    pure-ftpd vblade tftp-hpa ncftp \
+    atftp \
+    autofs \
+    cyrus-sasl \
+    ippool \
+    iscsi-initiator-utils \
+    lldpd \
+    ncftp \
+    igmpproxy \
+    postfix \
+    proftpd \
+    ptpd \
+    pure-ftpd \
+    radvd \
+    squid \
+    tftp-hpa \
+    tftp-hpa-server \
+    vblade \
+    vsftpd \
+    keepalived \
     ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "networkd-dispatcher", "", d)} \
-    "
+    openhpi \
+    opensaf \
+"
 
 RDEPENDS_packagegroup-meta-networking-daemons_remove_libc-musl = "opensaf"
 
 RDEPENDS_packagegroup-meta-networking-devtools = "\
     python3-ldap \
-    "
+"
 
 RDEPENDS_packagegroup-meta-networking-extended = "\
     corosync \
     ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "dlm", "", d)} \
-    "
+    kronosnet \
+"
 
 RDEPENDS_packagegroup-meta-networking-filter = "\
-    ebtables conntrack-tools libnetfilter-queue \
-    libnetfilter-conntrack libnetfilter-cthelper libnetfilter-acct \
-    libnetfilter-cttimeout libnetfilter-log nfacct \
-    arno-iptables-firewall libnftnl nftables \
+    libnftnl \
+    conntrack-tools \
+    ebtables \
+    libnetfilter-acct \
+    libnetfilter-conntrack \
+    libnetfilter-cthelper \
+    libnetfilter-cttimeout \
+    libnetfilter-log \
+    libnetfilter-queue \
     libnfnetlink \
-    " 
+    arno-iptables-firewall \
+    nfacct \
+    nftables \
+"
 
 RDEPENDS_packagegroup-meta-networking-irc = "\
+    weechat \
     znc \
-    "
+"
 
 RDEPENDS_packagegroup-meta-networking-kernel = "\
-    wireguard-module wireguard-tools \
-    "
+    wireguard-tools \
+"
 
 RDEPENDS_packagegroup-meta-networking-netkit = "\
-    netkit-rwho-client netkit-rwho-server netkit-rsh-client netkit-rsh-server \
-    netkit-telnet netkit-tftp-client netkit-tftp-server \
-    netkit-ftp netkit-rpc \
+    netkit-rwho-client \
+    netkit-rwho-server \
+    netkit-rsh-client \
+    netkit-rsh-server \
+    netkit-telnet \
+    netkit-tftp-client \
+    netkit-tftp-server \
+    netkit-ftp \
+    netkit-rpc \
     "
 
 RDEPENDS_packagegroup-meta-networking-netkit_remove_libc-musl = " \
     netkit-rsh-client netkit-rsh-server netkit-telnet"
 
 RDEPENDS_packagegroup-meta-networking-protocols = "\
-    tsocks freediameter xl2tpd babeld mdns net-snmp \
-    quagga pptp-linux zeroconf nopoll openflow rp-pppoe \
-    radiusclient-ng openl2tp usrsctp \
+    babeld \
     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "dante", "", d)} \
-    "
+    freediameter \
+    net-snmp \
+    openflow \
+    openflow \
+    openl2tp \
+    mdns \
+    nopoll \
+    quagga \
+    radiusclient-ng \
+    tsocks \
+    openlldp \
+    zeroconf \
+    pptp-linux \
+    rp-pppoe \
+    usrsctp \
+    xl2tpd \
+"
 
 RDEPENDS_packagegroup-meta-networking-protocols_remove_libc-musl = "mdns"
 
 RDEPENDS_packagegroup-meta-networking-support = "\
-    ncp ndisc6 mtr tinyproxy ssmping ntp \
-    wpan-tools bridge-utils ifenslave celt051 pimd \
-    nbd-client nbd-server nbd-trdump \
-    phytool fwknop htpdate tcpreplay \
-    traceroute geoip-perl geoip geoipupdate esmtp \
-    libtdb netcf dnsmasq curlpp openipmi drbd-utils \
-    tunctl dovecot ipvsadm stunnel chrony spice-protocol \
-    usbredir ntop wireshark tnftp lksctp-tools \
-    cim-schema-docs cim-schema-final cim-schema-exper \
-    libmemcached smcroute libtevent ipcalc uftp \
-    ntimed linux-atm ssmtp openvpn rdma-core \
-    iftop aoetools tcpslice tcpdump libtalloc memcached nuttcp netcat \
-    netcat-openbsd fetchmail yp-tools ypbind-mt yp-tools \
-    arptables macchanger nghttp2 strongswan fping \
-    libesmtp cifs-utils open-isns \
+    aoetools \
+    arptables \
+    bridge-utils \
+    celt051 \
+    cim-schema-docs \
+    cim-schema-final \
+    cifs-utils \
+    dnsmasq \
+    curlpp \
+    drbd-utils \
+    dovecot \
+    fping \
+    esmtp \
+    fetchmail \
+    geoip-perl \
+    geoip \
+    geoipupdate \
+    fwknop \
+    htpdate \
+    iftop \
+    ifmetric \
+    ipvsadm \
+    libesmtp \
     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "libldb", "", d)} \
+    libmemcached \
+    libtalloc \
+    ipcalc \
+    libtevent \
+    linux-atm \
+    lksctp-tools \
+    memcached \
+    ifenslave \
+    netcat \
+    netcat-openbsd \
+    libtdb \
     ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "non-commercial", "netperf", "", d)} \
-    ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "spice", "", d)} \
-    "
-
-
-RDEPENDS_packagegroup-meta-networking-support_remove_mipsarch = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_mips64 = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_mips64el = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_powerpc = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_riscv64 = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_riscv32 = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_armv5 = "spice-protocol"
-RDEPENDS_packagegroup-meta-networking-support_remove_aarch64 = "spice-protocol memcached"
+    yp-tools \
+    ypbind-mt \
+    yp-tools \
+    mtr \
+    ntp ntpdate sntp ntpdc ntpq ntp-tickadj ntp-utils \
+    nbd-client \
+    nbd-server \
+    nbd-trdump \
+    openvpn \
+    macchanger \
+    nbdkit \
+    ssmping \
+    libowfat \
+    ncp \
+    strongswan \
+    ndisc6 \
+    tcpdump \
+    tcpslice \
+    netcf \
+    nghttp2 \
+    tnftp \
+    traceroute \
+    tunctl \
+    wireshark \
+    ntop \
+    nuttcp \
+    nvmetcli \
+    open-isns \
+    openipmi \
+    phytool \
+    pimd \
+    ruli \
+    smcroute \
+    ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "spice-protocol spice", "", d)} \
+    usbredir \
+    ssmtp \
+    stunnel \
+    rdma-core \
+    tcpreplay \
+    tinyproxy \
+    uftp \
+    unbound \
+    wpan-tools \
+    ettercap \
+"
+RDEPENDS_packagegroup-meta-networking-support_remove_mipsarch = "memcached"
 
 EXCLUDE_FROM_WORLD = "1"
+# Empty packages, only devel headers and libs
+# nngpp
+# Use ntp and not chrony or ntimed
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.12.bb b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.13.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.12.bb
rename to meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.13.bb
index 6e49790..873d093 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.12.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_4.13.bb
@@ -28,8 +28,8 @@
 
 SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
 
-SRC_URI[md5sum] = "5d058f7f8f1db9fa4ce3db910a008b0e"
-SRC_URI[sha256sum] = "eae0ad993921e472ce36cce34674c47a224fc2868b65ef0c4b41b2f5f18378a0"
+SRC_URI[md5sum] = "31e524a416715d6bfef30e072d2ca076"
+SRC_URI[sha256sum] = "d09d3c31e3a7d158bda75501e763bd1cd3c3a99f5af6781ec1fd30eed2f771ed"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://errors/COPYRIGHT;md5=4c3268f394af77fbbf541875cef96a6c \
diff --git a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_2.8.bb b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_2.9.bb
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-irc/weechat/weechat_2.8.bb
rename to meta-openembedded/meta-networking/recipes-irc/weechat/weechat_2.9.bb
index cdfb1a9..512ed0e 100644
--- a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_2.8.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_2.9.bb
@@ -9,13 +9,14 @@
 SRC_URI = "https://weechat.org/files/src/weechat-${PV}.tar.xz \
            file://0001-use-pkg-config-for-gcrypt-instead.patch \
            "
-SRC_URI[sha256sum] = "553ea295edad3b03cf88e6029c21e7bde32ff1cc026d35386ba9da3e56a6018c"
+
+SRC_URI[sha256sum] = "eab406c385c3a10d0107ddc3aac6596ae8c59af99e9158c6d769e90ec9adfa0e"
 
 inherit cmake pkgconfig
 
 PACKAGECONFIG ??= " ncurses python"
 PACKAGECONFIG[ncurses] = "-DENABLE_NCURSES=ON,-DENABLE_NCURSES=OFF,ncurses"
-PACKAGECONFIG[python] = "-DENABLE_PYTHON=ON,-DENABLE_PYTHON=OFF,python3"
+PACKAGECONFIG[python] = "-DENABLE_PYTHON=ON,-DENABLE_PYTHON=OFF,python3,python3"
 
 EXTRA_OECMAKE_append = " -DENABLE_PHP=OFF -DENABLE_TCL=OFF -DENABLE_LUA=OFF -DENABLE_JAVASCRIPT=OFF -DENABLE_RUBY=OFF -DENABLE_GUILE=OFF -DENABLE_PERL=OFF -DENABLE_ASPELL=ON"
 
diff --git a/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.5.bb b/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.1.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.5.bb
rename to meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.1.bb
index a3d4b7c..c54e617 100644
--- a/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.7.5.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/znc/znc_1.8.1.bb
@@ -8,7 +8,7 @@
 SRC_URI = "git://github.com/znc/znc.git;name=znc \
            git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \
           "
-SRCREV_znc = "c7f72f8bc800115ac985e7e13eace78031cb1b50"
+SRCREV_znc = "0a3909beaa15e0da499473d6d041e5b75c14e885"
 SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4"
 
 # This constructs a composite revision based on multiple SRCREV's.
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20200712.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20200712.bb
index bc94e29..3a83e48 100644
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20200712.bb
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20200712.bb
@@ -33,3 +33,8 @@
     install -m 0644 ${MODULE_NAME}.ko \
     ${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko
 }
+
+# WireGuard has been merged into Linux kernel >= 5.6 and therefore this compatibility module is no longer required.
+# OE-core post dunfell has moved to use kernel 5.8 which now means we cant build this module in world builds
+# for reference machines e.g. qemu
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20200513.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20200513.bb
index c24e343..31b33a0 100644
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20200513.bb
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20200513.bb
@@ -5,7 +5,7 @@
 
 inherit bash-completion systemd pkgconfig
 
-DEPENDS += "wireguard-module libmnl"
+DEPENDS += "libmnl"
 
 do_install () {
     oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
@@ -22,4 +22,5 @@
     ${bindir} \
 "
 
-RDEPENDS_${PN} = "wireguard-module bash"
+RDEPENDS_${PN} = "bash"
+RRECOMMENDS_${PN} = "kernel-module-wireguard"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
index cf306ec..628047e 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
@@ -16,7 +16,7 @@
 SRC_URI[patch31.md5sum] = "93d71e28ce70df69e080c7f90da63cac"
 SRC_URI[patch31.sha256sum] = "4edd46a32d70daa7ba00f0ebf0118dc5d17dff23d6e46aa21a2722be2e22d1c1"
 
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
 
 CLEANBROKEN = "1"
 
@@ -47,3 +47,7 @@
             ${bindir}/.debug"
 
 RDEPENDS_${PN} = "readline"
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN} = "ftp"
+ALTERNATIVE_LINK_NAME[ftp] = "${bindir}/ftp"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
index ebe867d..a787e52 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
@@ -11,6 +11,9 @@
            "
 SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642"
 SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b"
+
+inherit update-alternatives
+
 CFLAGS += "-I${STAGING_INCDIR}/tirpc"
 LIBS += "-ltirpc"
 
@@ -42,3 +45,7 @@
     'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
     'MANDIR=${mandir}' install
 }
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN} = "rpcinfo"
+ALTERNATIVE_LINK_NAME[rpcinfo] = "${bindir}/rpcinfo"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
index ad543b0..3085823 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
@@ -82,8 +82,7 @@
     mkdir -p -m 755 ${D}${localstatedir}/spool/rwho
     chown -R rwhod ${D}${localstatedir}/spool/rwho
 }
-
-pkg_postinst_${PN}-server() {
+pkg_postinst_ontarget_${PN}-server() {
     ${sysconfdir}/init.d/rwhod start
 }
 
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
index 92c13e8..28e0164 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
@@ -16,7 +16,7 @@
 SRC_URI[patch18.md5sum] = "cb29e7a33dd85105ba6e6ec4f971e42c"
 SRC_URI[patch18.sha256sum] = "092437d27b4fa88c044ef6290372fee5ce06d223607f0e22a6e527065c8930e7"
 
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
 
 do_configure () {
     ./configure --prefix=${prefix}
@@ -53,3 +53,7 @@
     ${bindir}/.debug ${sbindir}/.debug"
 
 RDEPENDS_${PN}-server = "tcp-wrappers xinetd"
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN}-client = "tftp"
+ALTERNATIVE_LINK_NAME[tftp] = "${bindir}/tftp"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
index 692c344..f8efc10 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
@@ -1,7 +1,7 @@
-From 89ea6ac4a8840e8c2be0140a9805c6522c6c5280 Mon Sep 17 00:00:00 2001
+From 6d90f9fdaf008f5c3b8fd8d91594fa1461437888 Mon Sep 17 00:00:00 2001
 From: Nate Karstens <nate.karstens@garmin.com>
 Date: Wed, 28 Jun 2017 17:30:00 -0500
-Subject: [PATCH 01/11] Create subroutine for cleaning recent interfaces
+Subject: [PATCH] Create subroutine for cleaning recent interfaces
 
 Moves functionality for cleaning the list of recent
 interfaces into its own subroutine.
@@ -10,14 +10,14 @@
 
 Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
 ---
- mDNSPosix/mDNSPosix.c | 24 ++++++++++++++----------
- 1 file changed, 14 insertions(+), 10 deletions(-)
+ mDNSPosix/mDNSPosix.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
 
 diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 0e10bd5..ffc9696 100644
+index a63cd19..7aeee7b 100755
 --- a/mDNSPosix/mDNSPosix.c
 +++ b/mDNSPosix/mDNSPosix.c
-@@ -856,6 +856,19 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
+@@ -1199,6 +1199,19 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
      return err;
  }
  
@@ -37,11 +37,10 @@
  // Creates a PosixNetworkInterface for the interface whose IP address is
  // intfAddr and whose name is intfName and registers it with mDNS core.
  mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, const char *intfName, int intfIndex)
-@@ -1010,16 +1023,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
- 
+@@ -1388,15 +1401,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
      // Clean up.
-     if (intfList != NULL) free_ifi_info(intfList);
--
+     if (intfList != NULL) freeifaddrs(intfList);
+ 
 -    // Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute
 -    PosixNetworkInterface **ri = &gRecentInterfaces;
 -    const mDNSs32 utc = mDNSPlatformUTC();
@@ -56,5 +55,5 @@
      return err;
  }
 -- 
-2.17.1
+2.20.1
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch
new file mode 100644
index 0000000..3e9be7d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch
@@ -0,0 +1,40 @@
+From d744609c56f9872e5aa71707f1f71feec9867f51 Mon Sep 17 00:00:00 2001
+From: Mikko Rapeli <mikko.rapeli@bmw.de>
+Date: Tue, 14 Jul 2020 16:36:29 +0000
+Subject: [PATCH 1/2] mdns: include <stddef.h> for NULL
+
+Fixes build error with version 1096.40.7:
+
+../mDNSCore/mDNS.c:11385:26: error: 'NULL' undeclared (first use in this function)
+11385 |     const char *reason = NULL;
+      |                          ^~~~
+../mDNSCore/mDNS.c:56:1: note: 'NULL' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
+   55 | #include "dns_sd_internal.h"
+  +++ |+#include <stddef.h>
+   56 |
+../mDNSCore/mDNS.c:11385:26: note: each undeclared identifier is reported only once for each function it appears in
+11385 |     const char *reason = NULL;
+      |                          ^~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
+---
+ mDNSCore/mDNS.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mDNSCore/mDNS.c b/mDNSCore/mDNS.c
+index 2fbea04..d4b9af5 100755
+--- a/mDNSCore/mDNS.c
++++ b/mDNSCore/mDNS.c
+@@ -23,6 +23,7 @@
+  * routines, or types (which may or may not be present on any given platform).
+  */
+ 
++#include <stddef.h> /* for NULL */
+ #include "DNSCommon.h"                  // Defines general DNS utility routines
+ #include "uDNS.h"                       // Defines entry points into unicast-specific routines
+ #include "nsec.h"
+-- 
+2.20.1
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch
new file mode 100644
index 0000000..33590ff
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch
@@ -0,0 +1,145 @@
+From 72405143f9d16514e70b88bc4843c9634b88036a Mon Sep 17 00:00:00 2001
+From: Brendan Le Foll <brendan.le.foll@intel.com>
+Date: Tue, 3 Mar 2015 11:42:57 +0000
+Subject: [PATCH 2/2] mdns: cross compilation fixes for bitbake
+
+Fixes several build errors when incorrect compiler or
+compiler flags are used.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
+---
+ mDNSPosix/Makefile | 44 ++++++++++++++++++++------------------------
+ 1 file changed, 20 insertions(+), 24 deletions(-)
+
+diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
+index 78222e0..18a3af5 100755
+--- a/mDNSPosix/Makefile
++++ b/mDNSPosix/Makefile
+@@ -50,6 +50,7 @@
+ 
+ LIBVERS = 1
+ 
++POSIXDIR = ../mDNSPosix
+ COREDIR = ../mDNSCore
+ SHAREDDIR ?= ../mDNSShared
+ DSODIR ?= ../DSO
+@@ -62,16 +63,16 @@ else ifeq ($(SYSTEM), Linux)
+   os=linux
+ endif
+ 
+-CC = cc
+-BISON = bison
+-FLEX = flex
+-ST = strip
+-LD = ld
++CC ?= cc
++BISON ?= bison
++FLEX ?= flex
++ST ?= strip
++LD ?= ld
+ SOOPTS = -shared
+ CP = cp
+ RM = rm
+ LN = ln -s -f
+-CFLAGS_COMMON = -I$(COREDIR) -I$(SHAREDDIR) -I$(DSODIR) -I$(PROXYDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
++CFLAGS_COMMON = -I$(POSIXDIR) -I$(COREDIR) -I$(SHAREDDIR) -I$(DSODIR) -I$(PROXYDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
+ CFLAGS_PTHREAD =
+ LINKOPTS =
+ LINKOPTS_PTHREAD = -lpthread
+@@ -85,6 +86,7 @@ CFLAGS_OPEN_SOURCE=
+ endif
+ 
+ # Set up diverging paths for debug vs. prod builds
++DEBUG ?= 1
+ ifeq "$(DEBUG)" "1"
+ CFLAGS_DEBUGGING = -g -DMDNS_DEBUGMSGS=2
+ OBJDIR = objects/debug
+@@ -101,8 +103,8 @@ else
+ # 1. We want to make small binaries, suitable for putting into hardware devices
+ # 2. Some of the code analysis warnings only work when some form of optimization is enabled
+ CFLAGS_DEBUGGING = -g -DMDNS_DEBUGMSGS=0
+-OBJDIR ?= objects/prod
+-BUILDDIR ?= build/prod
++OBJDIR = objects/prod
++BUILDDIR = build/prod
+ STRIP = $(ST) -S
+ endif
+ endif
+@@ -125,7 +127,7 @@ else
+ # any target that contains the string "linux"
+ ifeq ($(findstring linux,$(os)),linux)
+ CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -ftabstop=4
+-LD = $(CC)
++LD ?= $(CC)
+ SOOPTS = -shared
+ FLEXFLAGS_OS = -l
+ JAVACFLAGS_OS += -I$(JDK)/include/linux
+@@ -276,8 +278,7 @@ Daemon: setup $(BUILDDIR)/mdnsd
+ 	@echo "Responder daemon done"
+ 
+ $(BUILDDIR)/mdnsd: $(DAEMONOBJS)
+-	$(CC) -o $@ $+ $(LINKOPTS)
+-	$(STRIP) $@
++	$(LD) -o $@ $+
+ 
+ # libdns_sd target builds the client library
+ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
+@@ -286,13 +287,9 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
+ CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
+ 
+ $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
+-	$(LD) $(SOOPTS) $(LINKOPTS) -o $@ $+
+-	$(STRIP) $@
+-
+-Clients: setup libdns_sd ../Clients/build/dns-sd
+-	@echo "Clients done"
++	$(LD) -shared $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+
+ 
+-../Clients/build/dns-sd: ../Clients/dns-sd.c
++Clients: setup libdns_sd
+ 	$(MAKE) -C ../Clients DEBUG=$(DEBUG) SUPMAKE_CFLAGS="$(MDNSCFLAGS)"
+ 
+ # nss_mdns target builds the Name Service Switch module
+@@ -300,8 +297,7 @@ nss_mdns: setup $(BUILDDIR)/$(NSSLIBFILE)
+ 	@echo "Name Service Switch module done"
+ 
+ $(BUILDDIR)/$(NSSLIBFILE): $(CLIENTLIBOBJS) $(OBJDIR)/nss_mdns.c.so.o
+-	$(LD) $(SOOPTS) $(LINKOPTS) -o $@ $+
+-	$(STRIP) $@
++	$(LD) -shared $(LINKOPTS) -o $@ $+
+ 
+ #############################################################################
+ 
+@@ -494,21 +490,21 @@ dnsextd: setup $(BUILDDIR)/dnsextd
+ 	@echo "dnsextd done"
+ 
+ $(BUILDDIR)/mDNSClientPosix:         $(APPOBJ)     $(OBJDIR)/Client.c.o
+-	$(CC) $+ -o $@ $(LINKOPTS)
++	$(CC) $+ -o $@
+ 
+ $(BUILDDIR)/mDNSResponderPosix:      $(COMMONOBJ)  $(OBJDIR)/Responder.c.o
+-	$(CC) $+ -o $@ $(LINKOPTS)
++	$(CC) $+ -o $@
+ 
+ $(BUILDDIR)/mDNSProxyResponderPosix: $(COMMONOBJ)  $(OBJDIR)/ProxyResponder.c.o
+-	$(CC) $+ -o $@ $(LINKOPTS)
++	$(CC) $+ -o $@
+ 
+ $(BUILDDIR)/mDNSNetMonitor:          $(SPECIALOBJ) $(OBJDIR)/NetMonitor.c.o
+-	$(CC) $+ -o $@ $(LINKOPTS)
++	$(CC) $+ -o $@
+ 
+ $(OBJDIR)/NetMonitor.c.o:            $(COREDIR)/mDNS.c # Note: NetMonitor.c textually imports mDNS.c
+ 
+ $(BUILDDIR)/dnsextd:                 $(DNSEXTDOBJ) $(OBJDIR)/dnsextd.c.threadsafe.o
+-	$(CC) $+ -o $@ $(LINKOPTS) $(LINKOPTS_PTHREAD)
++	$(CC) $+ -o $@ $(LINKOPTS_PTHREAD)
+ 
+ #############################################################################
+ 
+-- 
+2.20.1
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch
index 05ad49b..db3a63e 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch
@@ -1,4 +1,4 @@
-From e1f483510a1011e37540fdee8f3bc36111fa45a0 Mon Sep 17 00:00:00 2001
+From 798bfb5e984845a27874d1a244686db6e384d7b8 Mon Sep 17 00:00:00 2001
 From: Nate Karstens <nate.karstens@garmin.com>
 Date: Thu, 13 Jul 2017 09:00:00 -0500
 Subject: [PATCH 04/11] Use list for changed interfaces
@@ -15,10 +15,10 @@
  1 file changed, 52 insertions(+), 15 deletions(-)
 
 diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 8fe22be..699855a 100644
+index 195d04b..bb883c1 100755
 --- a/mDNSPosix/mDNSPosix.c
 +++ b/mDNSPosix/mDNSPosix.c
-@@ -75,6 +75,14 @@ struct IfChangeRec
+@@ -67,6 +67,14 @@ struct IfChangeRec
  };
  typedef struct IfChangeRec IfChangeRec;
  
@@ -31,9 +31,9 @@
 +typedef struct NetworkInterfaceIndex NetworkInterfaceIndex;
 +
  // Note that static data is initialized to zero in (modern) C.
- static fd_set gEventFDs;
- static int gMaxFD;                              // largest fd in gEventFDs
-@@ -1071,6 +1079,32 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD)
+ static PosixEventSource *gEventSources;             // linked list of PosixEventSource's
+ static sigset_t gEventSignalSet;                // Signals which event loop listens for
+@@ -1458,6 +1466,32 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD)
      return err;
  }
  
@@ -66,7 +66,7 @@
  #if MDNS_DEBUGMSGS
  mDNSlocal void      PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
  {
-@@ -1098,14 +1132,13 @@ mDNSlocal void      PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
+@@ -1485,14 +1519,13 @@ mDNSlocal void      PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
  }
  #endif
  
@@ -82,7 +82,7 @@
  
      // The structure here is more complex than it really ought to be because,
      // unfortunately, there's no good way to size a buffer in advance large
-@@ -1141,9 +1174,9 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
+@@ -1528,9 +1561,9 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
  
          // Process the NetLink message
          if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
@@ -94,7 +94,7 @@
  
          // Advance pNLMsg to the next message in the buffer
          if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
-@@ -1154,8 +1187,6 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
+@@ -1541,8 +1574,6 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
          else
              break;  // all done!
      }
@@ -103,7 +103,7 @@
  }
  
  #else // USES_NETLINK
-@@ -1187,14 +1218,13 @@ mDNSlocal void      PrintRoutingSocketMsg(const struct ifa_msghdr *pRSMsg)
+@@ -1574,14 +1605,13 @@ mDNSlocal void      PrintRoutingSocketMsg(const struct ifa_msghdr *pRSMsg)
  }
  #endif
  
@@ -119,7 +119,7 @@
  
      readCount = read(sd, buff, sizeof buff);
      if (readCount < (ssize_t) sizeof(struct ifa_msghdr))
-@@ -1209,12 +1239,10 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
+@@ -1596,12 +1626,10 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
          pRSMsg->ifam_type == RTM_IFINFO)
      {
          if (pRSMsg->ifam_type == RTM_IFINFO)
@@ -134,7 +134,7 @@
  }
  
  #endif // USES_NETLINK
-@@ -1224,7 +1252,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context)
+@@ -1611,7 +1639,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
  {
      IfChangeRec     *pChgRec = (IfChangeRec*) context;
      fd_set readFDs;
@@ -144,7 +144,7 @@
      struct timeval zeroTimeout = { 0, 0 };
  
      (void)fd; // Unused
-@@ -1233,17 +1262,25 @@ mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context)
+@@ -1619,17 +1648,25 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
      FD_ZERO(&readFDs);
      FD_SET(pChgRec->NotifySD, &readFDs);
  
@@ -173,5 +173,5 @@
  
  // Register with either a Routing Socket or RtNetLink to listen for interface changes.
 -- 
-2.17.1
+2.20.1
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch
deleted file mode 100644
index f2b171e..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0005-Handle-noisy-netlink-sockets.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From 92025cab86619f548bf3eb816a1804ef40507ca7 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Mon, 24 Jul 2017 09:38:55 -0500
-Subject: [PATCH 05/11] Handle noisy netlink sockets
-
-The POSIX implementation currently clears all network interfaces
-when netlink indicates that there has been a change. This causes
-the following problems:
-
-  1) Applications are informed that all of the services they are
-     tracking have been removed.
-  2) Increases network load because the client must re-query for
-     all records it is interested in.
-
-This changes netlink notification handling by:
-
-  1) Always comparing with the latest interface list returned
-     by the OS.
-  2) Confirming that the interface has been changed in a way
-     that we care about.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 143 +++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 133 insertions(+), 10 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 699855a..59a8b8c 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -1247,14 +1247,38 @@ mDNSlocal void          ProcessRoutingNotification(int sd, GenLinkedList *change
- 
- #endif // USES_NETLINK
- 
-+// Test whether the given PosixNetworkInterface matches the given struct ifi_info
-+mDNSlocal mDNSBool InterfacesMatch(PosixNetworkInterface *intf, struct ifi_info *ifi)
-+{
-+    mDNSBool match = mDNSfalse;
-+    mDNSAddr ip, mask;
-+
-+    if((intf->index == ifi->ifi_index) &&
-+       (intf->sa_family == ifi->ifi_addr->sa_family) &&
-+       (strcmp(intf->coreIntf.ifname, ifi->ifi_name) == 0))
-+        {
-+        SockAddrTomDNSAddr(ifi->ifi_addr,    &ip,   NULL);
-+        SockAddrTomDNSAddr(ifi->ifi_netmask, &mask, NULL);
-+
-+        match = mDNSSameAddress(&intf->coreIntf.ip, &ip) &&
-+                mDNSSameAddress(&intf->coreIntf.mask, &mask);
-+        }
-+
-+    return match;
-+}
-+
- // Called when data appears on interface change notification socket
- mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context)
- {
-     IfChangeRec     *pChgRec = (IfChangeRec*) context;
-+    mDNS            *m = pChgRec->mDNS;
-     fd_set readFDs;
-     GenLinkedList changedInterfaces;
-     NetworkInterfaceIndex *changedInterface;
-     struct timeval zeroTimeout = { 0, 0 };
-+    struct ifi_info *ifi_list, **ifi, *ifi_free, *ifi_loop4 = NULL;
-+    PosixNetworkInterface *intf, *intfNext;
-+    mDNSBool found, foundav4;
- 
-     (void)fd; // Unused
-     (void)filter; // Unused
-@@ -1270,12 +1294,115 @@ mDNSlocal void InterfaceChangeCallback(int fd, short filter, void *context)
-     }
-     while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout));
- 
--    // Currently we rebuild the entire interface list whenever any interface change is
--    // detected. If this ever proves to be a performance issue in a multi-homed
--    // configuration, more care should be paid to changedInterfaces.
--    if (changedInterfaces.Head != NULL)
--        mDNSPlatformPosixRefreshInterfaceList(pChgRec->mDNS);
-+    CleanRecentInterfaces();
-+
-+    if (changedInterfaces.Head == NULL) goto cleanup;
-+
-+    ifi_list = get_ifi_info(AF_INET, mDNStrue);
-+    if (ifi_list == NULL) goto cleanup;
-+
-+#if HAVE_IPV6
-+    /* Link the IPv6 list to the end of the IPv4 list */
-+    ifi = &ifi_list;
-+    while (*ifi != NULL) ifi = &(*ifi)->ifi_next;
-+    *ifi = get_ifi_info(AF_INET6, mDNStrue);
-+#endif
-+
-+    for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext)
-+    {
-+        intfNext = (PosixNetworkInterface*)(intf->coreIntf.next);
-+
-+        // Loopback interface(s) are handled later
-+        if (intf->coreIntf.Loopback) continue;
-+
-+        found = mDNSfalse;
-+        for (ifi = &ifi_list; *ifi != NULL; ifi = &(*ifi)->ifi_next)
-+        {
-+            if (InterfacesMatch(intf, *ifi))
-+            {
-+                found = mDNStrue;
-+
-+                // Removes unchanged from ifi_list
-+                ifi_free = *ifi;
-+                *ifi = (*ifi)->ifi_next;
-+                ifi_free->ifi_next = NULL;
-+                free_ifi_info(ifi_free);
-+
-+                break;
-+            }
-+        }
-+
-+        // Removes changed and old interfaces from m->HostInterfaces
-+        if (!found) TearDownInterface(m, intf);
-+    }
-+
-+    // Add new and changed interfaces in ifi_list
-+    // Save off loopback interface in case it is needed later
-+    for (ifi = &ifi_list; *ifi != NULL; ifi = &(*ifi)->ifi_next)
-+    {
-+        if ((ifi_loop4 == NULL) &&
-+            ((*ifi)->ifi_addr->sa_family == AF_INET) &&
-+            ((*ifi)->ifi_flags & IFF_UP) &&
-+            ((*ifi)->ifi_flags & IFF_LOOPBACK))
-+        {
-+            ifi_loop4 = *ifi;
-+            continue;
-+        }
-+
-+        if (     (((*ifi)->ifi_addr->sa_family == AF_INET)
-+#if HAVE_IPV6
-+                  || ((*ifi)->ifi_addr->sa_family == AF_INET6)
-+#endif
-+                  ) && ((*ifi)->ifi_flags & IFF_UP)
-+                    && !((*ifi)->ifi_flags & IFF_POINTOPOINT)
-+                    && !((*ifi)->ifi_flags & IFF_LOOPBACK))
-+        {
-+            SetupOneInterface(m, *ifi);
-+        }
-+    }
-+
-+    // Determine if there is at least one non-loopback IPv4 interface. This is to work around issues
-+    // with multicast loopback on IPv6 interfaces -- see corresponding logic in SetupInterfaceList().
-+    foundav4 = mDNSfalse;
-+    for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = (PosixNetworkInterface*)(intf->coreIntf.next))
-+    {
-+        if (intf->sa_family == AF_INET && !intf->coreIntf.Loopback)
-+        {
-+            foundav4 = mDNStrue;
-+            break;
-+        }
-+    }
-+
-+    if (foundav4)
-+    {
-+        for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext)
-+        {
-+            intfNext = (PosixNetworkInterface*)(intf->coreIntf.next);
-+            if (intf->coreIntf.Loopback) TearDownInterface(m, intf);
-+        }
-+    }
-+    else
-+    {
-+        found = mDNSfalse;
-+
-+        for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = (PosixNetworkInterface*)(intf->coreIntf.next))
-+        {
-+            if (intf->coreIntf.Loopback)
-+            {
-+                found = mDNStrue;
-+                break;
-+            }
-+        }
-+
-+        if (!found && (ifi_loop4 != NULL))
-+        {
-+            SetupOneInterface(m, ifi_loop4);
-+        }
-+    }
-+
-+    if (ifi_list != NULL) free_ifi_info(ifi_list);
- 
-+cleanup:
-     while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL)
-     {
-         RemoveFromList(&changedInterfaces, changedInterface);
-@@ -1400,15 +1527,11 @@ mDNSexport void mDNSPlatformClose(mDNS *const m)
- #endif
- }
- 
--// This is used internally by InterfaceChangeCallback.
--// It's also exported so that the Standalone Responder (mDNSResponderPosix)
-+// This is exported so that the Standalone Responder (mDNSResponderPosix)
- // can call it in response to a SIGHUP (mainly for debugging purposes).
- mDNSexport mStatus mDNSPlatformPosixRefreshInterfaceList(mDNS *const m)
- {
-     int err;
--    // This is a pretty heavyweight way to process interface changes --
--    // destroying the entire interface list and then making fresh one from scratch.
--    // We should make it like the OS X version, which leaves unchanged interfaces alone.
-     ClearInterfaceList(m);
-     err = SetupInterfaceList(m);
-     return PosixErrorToStatus(err);
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch
deleted file mode 100644
index 86201c6..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0007-Indicate-loopback-interface-to-mDNS-core.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 07a9401d84804d7f0181aa4fb0f13a54b2a1c9a8 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Tue, 1 Aug 2017 17:06:01 -0500
-Subject: [PATCH 07/11] Indicate loopback interface to mDNS core
-
-Tells the mDNS core if an interface is a loopback interface,
-similar to AddInterfaceToList() in the MacOS implementation.
-Also reorganizes SetupOneInterface() to use a const struct
-rather than growing its parameter list again.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 37 ++++++++++++++++++-------------------
- 1 file changed, 18 insertions(+), 19 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 3fc5451..798ab10 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -889,16 +889,14 @@ mDNSlocal void CleanRecentInterfaces(void)
- 
- // Creates a PosixNetworkInterface for the interface whose IP address is
- // intfAddr and whose name is intfName and registers it with mDNS core.
--mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, const char *intfName, int intfIndex)
-+mDNSlocal int SetupOneInterface(mDNS *const m, struct ifi_info *const ifi)
- {
-     int err = 0;
-     PosixNetworkInterface *intf;
-     PosixNetworkInterface *alias = NULL;
- 
-     assert(m != NULL);
--    assert(intfAddr != NULL);
--    assert(intfName != NULL);
--    assert(intfMask != NULL);
-+    assert(ifi != NULL);
- 
-     // Allocate the interface structure itself.
-     intf = (PosixNetworkInterface*)calloc(1, sizeof(*intf));
-@@ -907,26 +905,27 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct
-     // And make a copy of the intfName.
-     if (err == 0)
-     {
--        intf->intfName = strdup(intfName);
-+        intf->intfName = strdup(ifi->ifi_name);
-         if (intf->intfName == NULL) { assert(0); err = ENOMEM; }
-     }
- 
-     if (err == 0)
-     {
-         // Set up the fields required by the mDNS core.
--        SockAddrTomDNSAddr(intfAddr, &intf->coreIntf.ip, NULL);
--        SockAddrTomDNSAddr(intfMask, &intf->coreIntf.mask, NULL);
-+        SockAddrTomDNSAddr(ifi->ifi_addr, &intf->coreIntf.ip, NULL);
-+        SockAddrTomDNSAddr(ifi->ifi_netmask, &intf->coreIntf.mask, NULL);
- 
-         //LogMsg("SetupOneInterface: %#a %#a",  &intf->coreIntf.ip,  &intf->coreIntf.mask);
--        strncpy(intf->coreIntf.ifname, intfName, sizeof(intf->coreIntf.ifname));
-+        strncpy(intf->coreIntf.ifname, ifi->ifi_name, sizeof(intf->coreIntf.ifname));
-         intf->coreIntf.ifname[sizeof(intf->coreIntf.ifname)-1] = 0;
-         intf->coreIntf.Advertise = m->AdvertiseLocalAddresses;
-         intf->coreIntf.McastTxRx = mDNStrue;
-+        intf->coreIntf.Loopback = ((ifi->ifi_flags & IFF_LOOPBACK) != 0) ? mDNStrue : mDNSfalse;
- 
-         // Set up the extra fields in PosixNetworkInterface.
-         assert(intf->intfName != NULL);         // intf->intfName already set up above
--        intf->index                = intfIndex;
--        intf->sa_family            = intfAddr->sa_family;
-+        intf->index                = ifi->ifi_index;
-+        intf->sa_family            = ifi->ifi_addr->sa_family;
-         intf->multicastSocket4     = -1;
- #if HAVE_IPV6
-         intf->multicastSocket6     = -1;
-@@ -936,17 +935,17 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct
-         intf->coreIntf.InterfaceID = (mDNSInterfaceID)alias;
- 
-         if (alias != intf)
--            debugf("SetupOneInterface: %s %#a is an alias of %#a", intfName, &intf->coreIntf.ip, &alias->coreIntf.ip);
-+            debugf("SetupOneInterface: %s %#a is an alias of %#a", ifi->ifi_name, &intf->coreIntf.ip, &alias->coreIntf.ip);
-     }
- 
-     // Set up the multicast socket
-     if (err == 0)
-     {
--        if (alias->multicastSocket4 == -1 && intfAddr->sa_family == AF_INET)
--            err = SetupSocket(intfAddr, MulticastDNSPort, intf->index, &alias->multicastSocket4);
-+        if (alias->multicastSocket4 == -1 && ifi->ifi_addr->sa_family == AF_INET)
-+            err = SetupSocket(ifi->ifi_addr, MulticastDNSPort, intf->index, &alias->multicastSocket4);
- #if HAVE_IPV6
--        else if (alias->multicastSocket6 == -1 && intfAddr->sa_family == AF_INET6)
--            err = SetupSocket(intfAddr, MulticastDNSPort, intf->index, &alias->multicastSocket6);
-+        else if (alias->multicastSocket6 == -1 && ifi->ifi_addr->sa_family == AF_INET6)
-+            err = SetupSocket(ifi->ifi_addr, MulticastDNSPort, intf->index, &alias->multicastSocket6);
- #endif
-     }
- 
-@@ -973,8 +972,8 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct
-     }
-     else
-     {
--        // Use intfName instead of intf->intfName in the next line to avoid dereferencing NULL.
--        debugf("SetupOneInterface: %s %#a failed to register %d", intfName, &intf->coreIntf.ip, err);
-+        // Use ifi->ifi_name instead of intf->intfName in the next line to avoid dereferencing NULL.
-+        debugf("SetupOneInterface: %s %#a failed to register %d", ifi->ifi_name, &intf->coreIntf.ip, err);
-         if (intf) { FreePosixNetworkInterface(intf); intf = NULL; }
-     }
- 
-@@ -1023,7 +1022,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
-                 }
-                 else
-                 {
--                    if (SetupOneInterface(m, i->ifi_addr, i->ifi_netmask, i->ifi_name, i->ifi_index) == 0)
-+                    if (SetupOneInterface(m, i) == 0)
-                         if (i->ifi_addr->sa_family == AF_INET)
-                             foundav4 = mDNStrue;
-                 }
-@@ -1037,7 +1036,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
-         // In the interim, we skip loopback interface only if we found at least one v4 interface to use
-         // if ((m->HostInterfaces == NULL) && (firstLoopback != NULL))
-         if (!foundav4 && firstLoopback)
--            (void) SetupOneInterface(m, firstLoopback->ifi_addr, firstLoopback->ifi_netmask, firstLoopback->ifi_name, firstLoopback->ifi_index);
-+            (void) SetupOneInterface(m, firstLoopback);
-     }
- 
-     // Clean up.
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch
index d64fb35..d9adde0 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch
@@ -1,7 +1,7 @@
-From 19de26db69408f02241e232b39224589a0f630df Mon Sep 17 00:00:00 2001
+From 9ff06108cd44e84ba6c68bfa6737e793f117e303 Mon Sep 17 00:00:00 2001
 From: Nate Karstens <nate.karstens@garmin.com>
 Date: Thu, 10 Aug 2017 08:46:03 -0500
-Subject: [PATCH 11/11] Change a dynamic allocation to file-scope variable
+Subject: [PATCH] Change a dynamic allocation to file-scope variable
 
 Changes a variable from being dynamically-allocated to being
 statically-allocated at the file scope. Addresses a Coverity
@@ -11,14 +11,14 @@
 
 Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
 ---
- mDNSPosix/mDNSPosix.c | 12 ++++--------
- 1 file changed, 4 insertions(+), 8 deletions(-)
+ mDNSPosix/mDNSPosix.c | 14 ++++----------
+ 1 file changed, 4 insertions(+), 10 deletions(-)
 
 diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 84af26b..b7795ed 100644
+index 7aeee7b..2d25016 100755
 --- a/mDNSPosix/mDNSPosix.c
 +++ b/mDNSPosix/mDNSPosix.c
-@@ -91,6 +91,7 @@ static sigset_t gEventSignalSet;                // Signals which event loop list
+@@ -81,6 +81,7 @@ static sigset_t gEventSignalSet;                // Signals which event loop list
  static sigset_t gEventSignals;                  // Signals which were received while inside loop
  
  static PosixNetworkInterface *gRecentInterfaces;
@@ -26,13 +26,13 @@
  
  // ***************************************************************************
  // Globals (for debugging)
-@@ -1412,16 +1413,11 @@ cleanup:
+@@ -1641,18 +1642,11 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
  mDNSlocal mStatus WatchForInterfaceChange(mDNS *const m)
  {
      mStatus err;
 -    IfChangeRec *pChgRec;
  
--    pChgRec = (IfChangeRec*) mDNSPlatformMemAllocate(sizeof *pChgRec);
+-    pChgRec = (IfChangeRec*) mDNSPlatformMemAllocateClear(sizeof *pChgRec);
 -    if (pChgRec == NULL)
 -        return mStatus_NoMemoryErr;
 -
@@ -42,10 +42,12 @@
 +    err = OpenIfNotifySocket(&gChgRec.NotifySD);
      if (err == 0)
 -        err = mDNSPosixAddFDToEventLoop(pChgRec->NotifySD, InterfaceChangeCallback, pChgRec);
+-    if (err)
+-        mDNSPlatformMemFree(pChgRec);
 +        err = mDNSPosixAddFDToEventLoop(gChgRec.NotifySD, InterfaceChangeCallback, &gChgRec);
  
      return err;
  }
 -- 
-2.17.1
+2.20.1
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch
deleted file mode 100644
index 4ab9d23..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/files/build.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From 43b6e98c9c37afd0d914949dcff4eab81f5a995f Mon Sep 17 00:00:00 2001
-From: Brendan Le Foll <brendan.le.foll@intel.com>
-Date: Tue, 3 Mar 2015 11:42:57 +0000
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- mDNSPosix/Makefile | 54 +++++++++++++++++++++++++-----------------------------
- 1 file changed, 25 insertions(+), 29 deletions(-)
-
-diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
-index 4f98e90..8ac97ad 100755
---- a/mDNSPosix/Makefile
-+++ b/mDNSPosix/Makefile
-@@ -50,6 +50,7 @@
- 
- LIBVERS = 1
- 
-+POSIXDIR = ../mDNSPosix
- COREDIR = ../mDNSCore
- SHAREDDIR ?= ../mDNSShared
- JDK = /usr/jdk
-@@ -58,11 +59,11 @@ CC = @cc
- BISON = @bison
- FLEX = @flex
- ST = @strip
--LD = ld -shared
-+LD =@LD
- CP = cp
- RM = rm
- LN = ln -s -f
--CFLAGS_COMMON = -I$(COREDIR) -I$(SHAREDDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
-+CFLAGS_COMMON = -I$(POSIXDIR) -I$(COREDIR) -I$(SHAREDDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
- CFLAGS_PTHREAD =
- LINKOPTS =
- LINKOPTS_PTHREAD = -lpthread
-@@ -70,7 +71,7 @@ LDSUFFIX = so
- JAVACFLAGS_OS = -fPIC -shared -ldns_sd
- 
- # Set up diverging paths for debug vs. prod builds
--DEBUG=0
-+DEBUG?=1
- ifeq ($(DEBUG),1)
- CFLAGS_DEBUG = -g -DMDNS_DEBUGMSGS=2
- OBJDIR = objects/debug
-@@ -213,7 +214,7 @@ endif
- endif
- endif
- 
--CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG)
-+CFLAGS_BUILD = $(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG)
- 
- #############################################################################
- 
-@@ -249,8 +250,7 @@ Daemon: setup $(BUILDDIR)/mdnsd
- 	@echo "Responder daemon done"
- 
- $(BUILDDIR)/mdnsd: $(DAEMONOBJS)
--	$(CC) -o $@ $+ $(LINKOPTS)
--	@$(STRIP) $@
-+	$(CC) -o $@ $+
- 
- # libdns_sd target builds the client library
- libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
-@@ -259,22 +259,18 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
- CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
- 
- $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
--	@$(LD) $(LINKOPTS) -o $@ $+
--	@$(STRIP) $@
-+	$(LD) -shared $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+
- 
--Clients: setup libdns_sd ../Clients/build/dns-sd
-+Clients: setup libdns_sd
-+	@$(MAKE) -C ../Clients DEBUG=${DEBUG}
- 	@echo "Clients done"
- 
--../Clients/build/dns-sd:
--	@$(MAKE) -C ../Clients
--
- # nss_mdns target builds the Name Service Switch module
- nss_mdns: setup $(BUILDDIR)/$(NSSLIBFILE)
- 	@echo "Name Service Switch module done"
- 
- $(BUILDDIR)/$(NSSLIBFILE): $(CLIENTLIBOBJS) $(OBJDIR)/nss_mdns.c.so.o
--	@$(LD) $(LINKOPTS) -o $@ $+
--	@$(STRIP) $@
-+	$(LD) -shared $(LINKOPTS) -o $@ $+
- 
- #############################################################################
- 
-@@ -470,55 +466,55 @@ dnsextd: setup $(BUILDDIR)/dnsextd
- 	@echo "dnsextd done"
- 
- $(BUILDDIR)/mDNSClientPosix:         $(APPOBJ)     $(OBJDIR)/Client.c.o
--	$(CC) $+ -o $@ $(LINKOPTS)
-+	$(CC) $+ -o $@
- 
- $(BUILDDIR)/mDNSResponderPosix:      $(COMMONOBJ)  $(OBJDIR)/Responder.c.o
--	$(CC) $+ -o $@ $(LINKOPTS)
-+	$(CC) $+ -o $@
- 
- $(BUILDDIR)/mDNSProxyResponderPosix: $(COMMONOBJ)  $(OBJDIR)/ProxyResponder.c.o
--	$(CC) $+ -o $@ $(LINKOPTS)
-+	$(CC) $+ -o $@
- 
- $(BUILDDIR)/mDNSIdentify:            $(SPECIALOBJ) $(OBJDIR)/Identify.c.o
--	$(CC) $+ -o $@ $(LINKOPTS)
-+	$(CC) $+ -o $@
- 
- $(OBJDIR)/Identify.c.o:              $(COREDIR)/mDNS.c # Note: Identify.c textually imports mDNS.c
- 
- $(BUILDDIR)/mDNSNetMonitor:          $(SPECIALOBJ) $(OBJDIR)/NetMonitor.c.o
--	$(CC) $+ -o $@ $(LINKOPTS)
-+	$(CC) $+ -o $@
- 
- $(OBJDIR)/NetMonitor.c.o:            $(COREDIR)/mDNS.c # Note: NetMonitor.c textually imports mDNS.c
- 
- $(BUILDDIR)/dnsextd:                 $(DNSEXTDOBJ) $(OBJDIR)/dnsextd.c.threadsafe.o
--	$(CC) $+ -o $@ $(LINKOPTS) $(LINKOPTS_PTHREAD)
-+	$(CC) $+ -o $@ $(LINKOPTS_PTHREAD)
- 
- #############################################################################
- 
- # Implicit rules
- $(OBJDIR)/%.c.o:	%.c
--	$(CC) $(CFLAGS) -c -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) -c -o $@ $<
- 
- $(OBJDIR)/%.c.o:	$(COREDIR)/%.c
--	$(CC) $(CFLAGS) -c -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) -c -o $@ $<
- 
- $(OBJDIR)/%.c.o:	$(SHAREDDIR)/%.c
--	$(CC) $(CFLAGS) -c -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) -c -o $@ $<
- 
- $(OBJDIR)/%.c.threadsafe.o:	%.c
--	$(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
- 
- $(OBJDIR)/%.c.threadsafe.o:	$(SHAREDDIR)/%.c
--	$(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
- 
- $(OBJDIR)/%.c.so.o:	%.c
--	$(CC) $(CFLAGS) -c -fPIC -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $<
- 
- $(OBJDIR)/%.c.so.o:	$(SHAREDDIR)/%.c
--	$(CC) $(CFLAGS) -c -fPIC -o $@ $<
-+	$(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $<
- 
- $(OBJDIR)/%.y.o: $(SHAREDDIR)/%.y
- 	$(BISON)              -o $(OBJDIR)/$*.c -d $<
--	$(CC) $(CFLAGS) -c -o $@ $(OBJDIR)/$*.c
-+	$(CC) $(CFLAGS_BUILD) -c -o $@ $(OBJDIR)/$*.c
- 
- $(OBJDIR)/%.l.o: $(SHAREDDIR)/%.l
- 	$(FLEX) $(FLEXFLAGS_OS) -i             -o$(OBJDIR)/$*.l.c $<
--	$(CC) $(CFLAGS) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c
-+	$(CC) $(CFLAGS_BUILD) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c
--- 
-2.9.5
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.270.2.bb b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1096.40.7.bb
similarity index 90%
rename from meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.270.2.bb
rename to meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1096.40.7.bb
index 0f8dc92..086b408 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_878.270.2.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1096.40.7.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol"
 DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
 HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
-LICENSE = "Apache-2.0"
+LICENSE = "Apache-2.0 & BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
 
 COMPATIBLE_HOST_libc-musl = 'null'
@@ -9,22 +9,23 @@
 RPROVIDES_${PN} += "libdns_sd.so"
 
 SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
-           file://build.patch;patchdir=.. \
            file://mdns.service \
+           file://0001-mdns-include-stddef.h-for-NULL.patch;patchdir=.. \
+           file://0002-mdns-cross-compilation-fixes-for-bitbake.patch;patchdir=.. \
            file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch;patchdir=.. \
            file://0002-Create-subroutine-for-tearing-down-an-interface.patch;patchdir=.. \
            file://0003-Track-interface-socket-family.patch;patchdir=.. \
            file://0004-Use-list-for-changed-interfaces.patch;patchdir=.. \
-           file://0005-Handle-noisy-netlink-sockets.patch;patchdir=.. \
            file://0006-Remove-unneeded-function.patch;patchdir=.. \
-           file://0007-Indicate-loopback-interface-to-mDNS-core.patch;patchdir=.. \
            file://0008-Mark-deleted-interfaces-as-being-changed.patch;patchdir=.. \
            file://0009-Fix-possible-NULL-dereference.patch;patchdir=.. \
            file://0010-Handle-errors-from-socket-calls.patch;patchdir=.. \
            file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch;patchdir=.. \
            "
-SRC_URI[md5sum] = "4e139a8e1133349006b0436291c9e29b"
-SRC_URI[sha256sum] = "2cef0ee9900504c5277fb81de0a28e6c0835fe482ebecf1067c6864f5c4eda74"
+SRC_URI[md5sum] = "ac766013bbcb323e9db4c80805b2552a"
+SRC_URI[sha256sum] = "b86f4816b4145915198e7c5bf0bc56dbbfd960e9a4518bb6486baa40cdcca7e6"
+
+CVE_PRODUCT = "apple:mdnsresponder"
 
 PARALLEL_MAKE = ""
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch
deleted file mode 100644
index dd159b9..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-pkg-config-support-for-building-applications-and.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 4bf83597379523032663c8e95b3786a217c9a849 Mon Sep 17 00:00:00 2001
-From: Hugh McMaster <hugh.mcmaster@outlook.com>
-Date: Wed, 3 Apr 2019 21:36:03 +1100
-Subject: [PATCH] Add pkg-config support for building applications and
- sub-agents
-
-The netsnmp package should be used when building Net-SNMP applications.
-The netsnmp-agent package should be used when building Net-SNMP subagents.
-
-Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
-[ bvanassche: edited makefile code and .pc files; added ./configure changes ]
-
-Upstream-Status: Backport
-https://sourceforge.net/p/net-snmp/patches/_discuss/thread/a0d66e91dd/f940/attachment/0001-Add-pkg-config-support-for-building-applications-and.patch
----
- Makefile.in         |  2 ++
- Makefile.rules      | 30 ++++++++++++++++++++++++++----
- configure           |  4 ++++
- configure.ac        |  1 +
- netsnmp-agent.pc.in | 12 ++++++++++++
- netsnmp.pc.in       | 12 ++++++++++++
- 6 files changed, 57 insertions(+), 4 deletions(-)
- create mode 100644 netsnmp-agent.pc.in
- create mode 100644 netsnmp.pc.in
-
-diff --git a/Makefile.in b/Makefile.in
-index 9dbdde1353..ec972636c2 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -35,6 +35,7 @@ INSTALLBUILTHEADERS=include/net-snmp/net-snmp-config.h
- INSTALLBUILTINCLUDEHEADERS=@FEATUREHEADERS@
- INSTALLBINSCRIPTS=net-snmp-config net-snmp-create-v3-user
- INSTALLUCDHEADERS=ucd-snmp-config.h version.h mib_module_config.h
-+INSTALL_PKGCONFIG=netsnmp.pc netsnmp-agent.pc
- 
- #
- # other install rules.
-@@ -275,6 +276,7 @@ configclean: makefileclean
- 		libtool include/net-snmp/net-snmp-config.h \
- 		net-snmp-config net-snmp-config-x configure-summary \
- 		net-snmp-create-v3-user net-snmp-create-v3-user-x
-+	rm -f *.pc
- 	rm -f mibs/.index
- 	rm -f include/net-snmp/agent/mib_module_config.h		\
- 		include/net-snmp/agent/agent_module_config.h		\
-diff --git a/Makefile.rules b/Makefile.rules
-index 9e9e9009e5..e714f91e72 100644
---- a/Makefile.rules
-+++ b/Makefile.rules
-@@ -85,12 +85,14 @@ subdirs:
- # installlibs handles local, ucd and subdir libs. need to do subdir libs
- # before bins, sinze those libs may be needed for successful linking
- install: installlocalheaders @installucdheaders@ \
--         installlibs \
--         installlocalbin      installlocalsbin   \
-+         installlibs         install_pkgconfig   \
-+         installlocalbin     installlocalsbin    \
-          installsubdirs      $(OTHERINSTALL)
- 
--uninstall: uninstalllibs uninstallbin uninstallsbin uninstallheaders \
--           uninstallsubdirs $(OTHERUNINSTALL)
-+uninstall: uninstalllibs     uninstall_pkgconfig \
-+           uninstallbin      uninstallsbin       \
-+           uninstallheaders                      \
-+           uninstallsubdirs  $(OTHERUNINSTALL)
- 
- installprogs: installbin installsbin
- 
-@@ -287,6 +289,26 @@ uninstalllibs:
- 		done \
- 	fi
- 
-+#
-+# pkg-config files
-+#
-+install_pkgconfig: $(INSTALL_PKGCONFIG)
-+	@if test "x$(INSTALL_PKGCONFIG)" != x; then			\
-+		$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir)/pkgconfig; \
-+		for i in $(INSTALL_PKGCONFIG); do			\
-+			echo "installing $$i in $(INSTALL_PREFIX)$(libdir)/pkgconfig"; \
-+		done;							\
-+		$(INSTALL) $(INSTALL_PKGCONFIG) $(INSTALL_PREFIX)$(libdir)/pkgconfig; \
-+	fi
-+
-+uninstall_pkgconfig:
-+	@if test "x$(INSTALL_PKGCONFIG)" != x; then			\
-+		for i in $(INSTALL_PKGCONFIG); do			\
-+			echo "removing $$i from $(INSTALL_PREFIX)$(libdir)/pkgconfig"; \
-+			$(UNINSTALL) $(INSTALL_PREFIX)$(libdir)/pkgconfig/$$i;\
-+		done;							\
-+	fi
-+
- #
- # normal bin binaries
- #
-diff --git a/configure b/configure
-index cad6b74486..8909bffe05 100755
---- a/configure
-+++ b/configure
-@@ -31717,6 +31717,8 @@ ac_config_files="$ac_config_files net-snmp-config:net-snmp-config.in"
- 
- ac_config_files="$ac_config_files net-snmp-create-v3-user:net-snmp-create-v3-user.in"
- 
-+ac_config_files="$ac_config_files netsnmp.pc:netsnmp.pc.in netsnmp-agent.pc:netsnmp-agent.pc.in"
-+
- ac_config_files="$ac_config_files dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in"
- 
- ac_config_files="$ac_config_files local/snmpconf"
-@@ -32740,6 +32742,8 @@ do
-     "mibs/Makefile") CONFIG_FILES="$CONFIG_FILES mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules" ;;
-     "net-snmp-config") CONFIG_FILES="$CONFIG_FILES net-snmp-config:net-snmp-config.in" ;;
-     "net-snmp-create-v3-user") CONFIG_FILES="$CONFIG_FILES net-snmp-create-v3-user:net-snmp-create-v3-user.in" ;;
-+    "netsnmp.pc") CONFIG_FILES="$CONFIG_FILES netsnmp.pc:netsnmp.pc.in" ;;
-+    "netsnmp-agent.pc") CONFIG_FILES="$CONFIG_FILES netsnmp-agent.pc:netsnmp-agent.pc.in" ;;
-     "dist/generation-scripts/gen-variables") CONFIG_FILES="$CONFIG_FILES dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in" ;;
-     "local/snmpconf") CONFIG_FILES="$CONFIG_FILES local/snmpconf" ;;
-     "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-diff --git a/configure.ac b/configure.ac
-index 1622b7c051..898b50f368 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -118,6 +118,7 @@ AC_CONFIG_FILES([net-snmp-config:net-snmp-config.in],
- 		[chmod +x net-snmp-config])
- AC_CONFIG_FILES([net-snmp-create-v3-user:net-snmp-create-v3-user.in],
- 		[chmod +x net-snmp-create-v3-user])
-+AC_CONFIG_FILES([netsnmp.pc:netsnmp.pc.in netsnmp-agent.pc:netsnmp-agent.pc.in])
- AC_CONFIG_FILES([dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in])
- AC_CONFIG_FILES([local/snmpconf])
- 
-diff --git a/netsnmp-agent.pc.in b/netsnmp-agent.pc.in
-new file mode 100644
-index 0000000000..3a1c77bbf8
---- /dev/null
-+++ b/netsnmp-agent.pc.in
-@@ -0,0 +1,12 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+includedir=@includedir@
-+libdir=@libdir@
-+
-+Name: netsnmp-agent (@PACKAGE_NAME@)
-+Description: SNMP (Simple Network Management Protocol) sub-agent SDK.
-+URL: http://www.net-snmp.org
-+Version: @PACKAGE_VERSION@
-+Cflags: -I${includedir}
-+Libs: -L${libdir} -lnetsnmpmibs -lnetsnmpagent -lnetsnmp
-+Libs.private: @LDFLAGS@ @LMIBLIBS@ @LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@ @LNETSNMPLIBS@ @LIBS@
-diff --git a/netsnmp.pc.in b/netsnmp.pc.in
-new file mode 100644
-index 0000000000..0a1f5785a4
---- /dev/null
-+++ b/netsnmp.pc.in
-@@ -0,0 +1,12 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+includedir=@includedir@
-+libdir=@libdir@
-+
-+Name: netsnmp (@PACKAGE_NAME@)
-+Description: SNMP (Simple Network Management Protocol) daemon and applications.
-+URL: http://www.net-snmp.org
-+Version: @PACKAGE_VERSION@
-+Cflags: -I${includedir}
-+Libs: -L${libdir} -lnetsnmp
-+Libs.private: @LDFLAGS@ @LNETSNMPLIBS@ @LIBS@ @PERLLDOPTS_FOR_APPS@
--- 
-2.26.2
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
index 5ad7470..05a47f6 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
@@ -1,4 +1,4 @@
-From 2ad4df6d503be72a8910c3087611adb33d77ffde Mon Sep 17 00:00:00 2001
+From 69d4c517c07f55c505090e48d96ace8cd599fb26 Mon Sep 17 00:00:00 2001
 From: Li xin <lixin.fnst@cn.fujitsu.com>
 Date: Fri, 21 Aug 2015 18:23:13 +0900
 Subject: [PATCH] config_os_headers: Error Fix
@@ -13,15 +13,16 @@
 Upstream-Status: pending
 
 Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+
 ---
  configure.d/config_os_headers | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
-index 2fdb5a35d6..0272f02c8e 100644
+index f07d512..2363b42 100644
 --- a/configure.d/config_os_headers
 +++ b/configure.d/config_os_headers
-@@ -487,8 +487,8 @@ then
+@@ -395,8 +395,8 @@ then
      unset ac_cv_header_pkg_h
      netsnmp_save_CPPFLAGS="$CPPFLAGS"
      netsnmp_save_LDFLAGS="$LDFLAGS"
@@ -32,6 +33,3 @@
      AC_CHECK_HEADERS(pkg.h,
          NETSNMP_SEARCH_LIBS(pkg_init, pkg,
  	    AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng])))
--- 
-2.26.2
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
index bf133b3..22e5915 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
@@ -1,4 +1,4 @@
-From 98c6edba4835b515d933542411d80879327eee16 Mon Sep 17 00:00:00 2001
+From 2bf1bbe1d428ed06d57aa76b03e394b72ff2216d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 22 Jul 2016 18:34:39 +0000
 Subject: [PATCH] get_pid_from_inode: Include limit.h
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-fix-compile-error-disable-des.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-fix-compile-error-disable-des.patch
deleted file mode 100644
index 33a1e74..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-fix-compile-error-disable-des.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 383e67e359b89abe0440597ce414297892ade511 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 26 Feb 2019 14:26:07 +0800
-Subject: [PATCH] net-snmp: fix compile error with --disable-des
-
-| scapi.c: In function 'sc_encrypt':
-| scapi.c:1256:5: error: 'pad_size' undeclared (first use in this function); did you mean 'dysize'?
-|      pad_size = pai->pad_size;
-|      ^~~~~~~~
-|      dysize
-
-pad_size is defined only without --disable-des
-[snip]
-#ifndef NETSNMP_DISABLE_DES
-    int             pad, plast, pad_size = 0;
-
-but used when disable-des,
-[snip]
-        QUITFUN(SNMPERR_GENERR, sc_encrypt_quit);
-    }
-    pad_size = pai->pad_size;
-
-    memset(my_iv, 0, sizeof(my_iv));
-
-#ifndef NETSNMP_DISABLE_DES
-    if (USM_CREATE_USER_PRIV_DES == (pai->type & USM_PRIV_MASK_ALG)) {
-
-        /*
-
-fix by move it into #ifndef NETSNMP_DISABLE_DES
-
-Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/bugs/2927/]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- snmplib/scapi.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/snmplib/scapi.c b/snmplib/scapi.c
-index 8ad1d70d90..8c6882d9ab 100644
---- a/snmplib/scapi.c
-+++ b/snmplib/scapi.c
-@@ -1251,7 +1251,6 @@ sc_encrypt(const oid * privtype, size_t privtypelen,
- 
-         QUITFUN(SNMPERR_GENERR, sc_encrypt_quit);
-     }
--    pad_size = pai->pad_size;
- 
-     memset(my_iv, 0, sizeof(my_iv));
- 
-@@ -1261,6 +1260,8 @@ sc_encrypt(const oid * privtype, size_t privtypelen,
-         /*
-          * now calculate the padding needed 
-          */
-+
-+       pad_size = pai->pad_size;
-         pad = pad_size - (ptlen % pad_size);
-         plast = (int) ptlen - (pad_size - pad);
-         if (pad == pad_size)
--- 
-2.26.2
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
index 778b401..42352a6 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
@@ -1,4 +1,4 @@
-From 89538a973119f1bf976b3a6df157ea940cf32eb5 Mon Sep 17 00:00:00 2001
+From f3ff99736b8cccbba77349b0d10a3cee366a4c87 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 18 Sep 2015 00:28:45 -0400
 Subject: [PATCH] snmplib/keytools.c: Don't check for return from
@@ -10,22 +10,25 @@
 snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
 
 ---
- snmplib/keytools.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
+ snmplib/keytools.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
 
 diff --git a/snmplib/keytools.c b/snmplib/keytools.c
-index 2cf0240..50fd3ea 100644
+index 129a7c0..2fc1efc 100644
 --- a/snmplib/keytools.c
 +++ b/snmplib/keytools.c
-@@ -186,8 +186,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
+@@ -183,10 +183,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
      ctx = EVP_MD_CTX_create();
  #else
      ctx = malloc(sizeof(*ctx));
--    if (!EVP_MD_CTX_init(ctx))
--        return SNMPERR_GENERR;
+-    if (!EVP_MD_CTX_init(ctx)) {
+-        rval = SNMPERR_GENERR;
+-        goto generate_Ku_quit;
+-    }
 +    EVP_MD_CTX_init(ctx);
  #endif
-     if (!EVP_DigestInit(ctx, hashfn))
-         return SNMPERR_GENERR;
+     if (!EVP_DigestInit(ctx, hashfn)) {
+         rval = SNMPERR_GENERR;
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
index 4782714..c973bde 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
@@ -1,7 +1,7 @@
-From a3631df3d6743113e1cd63579925e15bcce85868 Mon Sep 17 00:00:00 2001
+From 0a02ac779c51a2b4af3b58cb96967bf3eff80367 Mon Sep 17 00:00:00 2001
 From: Wenlin Kang <wenlin.kang@windriver.com>
 Date: Wed, 24 May 2017 16:45:34 +0800
-Subject: [PATCH 2/4] configure: fix a cc check issue.
+Subject: [PATCH] configure: fix a cc check issue.
 
 When has "." in cc value, the expression
 $myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
index a3d84b2..bfddc63 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
@@ -1,7 +1,7 @@
-From f3c5cd4df7ce8e5639c99b7b918e41fb89e969e3 Mon Sep 17 00:00:00 2001
+From 011bdcd07f2a289d0cfc1b411c03c0cc7c42dad1 Mon Sep 17 00:00:00 2001
 From: Wenlin Kang <wenlin.kang@windriver.com>
 Date: Wed, 24 May 2017 17:10:20 +0800
-Subject: [PATCH 4/4] configure: fix incorrect variable
+Subject: [PATCH] configure: fix incorrect variable
 
 For cross compile platform, this variable will not be correct, so fix it.
 
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile.in b/Makefile.in
-index 9dbdde1..5fdc760 100644
+index 912f6b2..a53d1b2 100644
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -173,7 +173,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
+@@ -174,7 +174,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
  #
  # override LD_RUN_PATH to avoid dependencies on the build directory
  perlmodules: perlmakefiles subdirs
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2019-20892.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2019-20892.patch
deleted file mode 100644
index ec1b6de..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2019-20892.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 5f881d3bf24599b90d67a45cae7a3eb099cd71c9 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Sat, 27 Jul 2019 19:34:09 -0700
-Subject: [PATCH] libsnmp, USM: Introduce a reference count in struct
- usmStateReference
-
-This patch fixes https://sourceforge.net/p/net-snmp/bugs/2956/.
-
-Upstream-Status: Backport
-[ak: fixup for 5.8 context, changes to library/snmpusm.h]
-
-CVE: CVE-2019-20892
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-Signed-off-by: Mingde (Matthew) Zeng <matthew.zeng@windriver.com>
-
----
- snmplib/snmp_client.c | 22 +++----------
- snmplib/snmpusm.c     | 73 ++++++++++++++++++++++++++++---------------
- 2 files changed, 53 insertions(+), 42 deletions(-)
-
-Index: net-snmp-5.8/snmplib/snmpusm.c
-===================================================================
---- net-snmp-5.8.orig/snmplib/snmpusm.c
-+++ net-snmp-5.8/snmplib/snmpusm.c
-@@ -285,12 +285,35 @@ free_enginetime_on_shutdown(int majorid,
- struct usmStateReference *
- usm_malloc_usmStateReference(void)
- {
--    struct usmStateReference *retval = (struct usmStateReference *)
--        calloc(1, sizeof(struct usmStateReference));
-+   struct usmStateReference *retval;
- 
-+    retval = calloc(1, sizeof(struct usmStateReference));
-+    if (retval)
-+        retval->refcnt = 1;
-     return retval;
- }                               /* end usm_malloc_usmStateReference() */
- 
-+static int
-+usm_clone(netsnmp_pdu *pdu, netsnmp_pdu *new_pdu)
-+{
-+    struct usmStateReference *ref = pdu->securityStateRef;
-+    struct usmStateReference **new_ref =
-+        (struct usmStateReference **)&new_pdu->securityStateRef;
-+    int ret = 0;
-+
-+    if (!ref)
-+        return ret;
-+
-+    if (pdu->command == SNMP_MSG_TRAP2) {
-+        netsnmp_assert(pdu->securityModel == SNMP_DEFAULT_SECMODEL);
-+        ret = usm_clone_usmStateReference(ref, new_ref);
-+    } else {
-+        netsnmp_assert(ref == *new_ref);
-+        ref->refcnt++;
-+    }
-+
-+    return ret;
-+}
- 
- void
- usm_free_usmStateReference(void *old)
-@@ -3345,6 +3368,7 @@ init_usm(void)
-     def->encode_reverse = usm_secmod_rgenerate_out_msg;
-     def->encode_forward = usm_secmod_generate_out_msg;
-     def->decode = usm_secmod_process_in_msg;
-+    def->pdu_clone = usm_clone;
-     def->pdu_free_state_ref = usm_free_usmStateReference;
-     def->session_setup = usm_session_init;
-     def->handle_report = usm_handle_report;
-Index: net-snmp-5.8/snmplib/snmp_client.c
-===================================================================
---- net-snmp-5.8.orig/snmplib/snmp_client.c
-+++ net-snmp-5.8/snmplib/snmp_client.c
-@@ -402,27 +402,15 @@ _clone_pdu_header(netsnmp_pdu *pdu)
-         return NULL;
-     }
- 
--    if (pdu->securityStateRef &&
--        pdu->command == SNMP_MSG_TRAP2) {
--
--        ret = usm_clone_usmStateReference((struct usmStateReference *) pdu->securityStateRef,
--                (struct usmStateReference **) &newpdu->securityStateRef );
--
--        if (ret)
--        {
-+    sptr = find_sec_mod(newpdu->securityModel);
-+    if (sptr && sptr->pdu_clone) {
-+        /* call security model if it needs to know about this */
-+        ret = sptr->pdu_clone(pdu, newpdu);
-+        if (ret) {
-             snmp_free_pdu(newpdu);
-             return NULL;
-         }
-     }
--
--    if ((sptr = find_sec_mod(newpdu->securityModel)) != NULL &&
--        sptr->pdu_clone != NULL) {
--        /*
--         * call security model if it needs to know about this 
--         */
--        (*sptr->pdu_clone) (pdu, newpdu);
--    }
--
-     return newpdu;
- }
- 
-Index: net-snmp-5.8/include/net-snmp/library/snmpusm.h
-===================================================================
---- net-snmp-5.8.orig/include/net-snmp/library/snmpusm.h
-+++ net-snmp-5.8/include/net-snmp/library/snmpusm.h
-@@ -43,6 +43,7 @@ extern          "C" {
-      * Structures.
-      */
-     struct usmStateReference {
-+        int             refcnt;
-         char           *usr_name;
-         size_t          usr_name_length;
-         u_char         *usr_engine_id;
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
index fc3ac2a..26dd014 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
@@ -1,4 +1,4 @@
-From 0becb4843a40910d5ec9aa11969d4905a22037cf Mon Sep 17 00:00:00 2001
+From 27444fbf8323679ea0551a3bd5f04c365143d8c0 Mon Sep 17 00:00:00 2001
 From: "Roy.Li" <rongqing.li@windriver.com>
 Date: Fri, 16 Jan 2015 14:14:01 +0800
 Subject: [PATCH] net-snmp: fix "libtool --finish"
@@ -20,7 +20,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile.top b/Makefile.top
-index 5d4f9bc..d0ed31c 100644
+index 6315401..fc0ee06 100644
 --- a/Makefile.top
 +++ b/Makefile.top
 @@ -89,7 +89,7 @@ LIBREVISION = 0
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
index 5cbb60d..da6d80e 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
@@ -1,4 +1,4 @@
-From d619cd9fc01f336ff0ff55b18f9112789eb4d84c Mon Sep 17 00:00:00 2001
+From b6a3d6c8af35f1ef27b80b0516742fce89f4eb29 Mon Sep 17 00:00:00 2001
 From: Marian Florea <marian.florea@windriver.com>
 Date: Thu, 20 Jul 2017 16:55:24 +0800
 Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP
@@ -14,10 +14,10 @@
  2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/agent/snmpd.c b/agent/snmpd.c
-index 6566354..eb0d4b4 100644
+index ae73eda..66b4560 100644
 --- a/agent/snmpd.c
 +++ b/agent/snmpd.c
-@@ -1239,6 +1239,7 @@ receive(void)
+@@ -1207,6 +1207,7 @@ receive(void)
  	    snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
  		     netsnmp_get_version());
              update_config();
@@ -26,10 +26,10 @@
  #if HAVE_SIGHOLD
              sigrelse(SIGHUP);
 diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
-index 771ba3b..5de05e7 100644
+index 29c2a0f..ada961c 100644
 --- a/snmplib/snmpv3.c
 +++ b/snmplib/snmpv3.c
-@@ -1060,9 +1060,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
+@@ -1059,9 +1059,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
      /*
       * if our engineID has changed at all, the boots record must be set to 1 
       */
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch
index fb773e6..f1ebe2b 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch
@@ -1,4 +1,4 @@
-From a1134a31d417cc05a1fdb094f613a00a7a5e7ac5 Mon Sep 17 00:00:00 2001
+From e507dcf8b29c55011f85d88bf05400d4717e4074 Mon Sep 17 00:00:00 2001
 From: Chong Lu <Chong.Lu@windriver.com>
 Date: Thu, 28 May 2020 09:46:34 -0500
 Subject: [PATCH] net-snmp: add knob whether nlist.h are checked
@@ -9,30 +9,28 @@
 Upstream-status: Pending
 
 Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+
 ---
  configure.d/config_os_headers | 2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
-index 2fdb5a35d6..af997461d5 100644
+index 76ef58a..f07d512 100644
 --- a/configure.d/config_os_headers
 +++ b/configure.d/config_os_headers
-@@ -32,6 +32,7 @@ AC_CHECK_HEADERS([getopt.h   pthread.h  regex.h      ] dnl
-                  [sys/un.h           ])
+@@ -37,6 +37,7 @@ AC_CHECK_HEADERS([getopt.h   pthread.h  regex.h      ] dnl
+                  [sys/timeb.h        ])
  
  #  Library and Agent:
 +if test "x$with_elf" != "xno"; then
  AC_CHECK_HEADERS([nlist.h],,,[
  AC_INCLUDES_DEFAULT
  [
-@@ -39,6 +40,7 @@ AC_INCLUDES_DEFAULT
+@@ -44,6 +45,7 @@ AC_INCLUDES_DEFAULT
  #define LIBBSD_DISABLE_DEPRECATED 1
  #endif
  ]])
 +fi
  
  #  Library:
- AC_CHECK_HEADERS([fcntl.h    io.h       kstat.h                 ] dnl
--- 
-2.26.2
-
+ AC_CHECK_HEADERS([crt_externs.h                        ] dnl
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
index 4cd8fd1..2941a36 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
@@ -1,4 +1,4 @@
-From 068952c0e0cdda5a91250b91c5fcc9b85b43daab Mon Sep 17 00:00:00 2001
+From 3ca4335ec1d6b7b384c134fc85d7a9e513c68376 Mon Sep 17 00:00:00 2001
 From: Jackie Huang <jackie.huang@windriver.com>
 Date: Thu, 22 Jun 2017 10:25:08 +0800
 Subject: [PATCH] net-snmp: fix for --disable-des
@@ -15,10 +15,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/snmplib/scapi.c b/snmplib/scapi.c
-index 8ad1d70..43caddf 100644
+index 00c9174..c6875e1 100644
 --- a/snmplib/scapi.c
 +++ b/snmplib/scapi.c
-@@ -84,7 +84,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
+@@ -85,7 +85,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support);
  #include <openssl/hmac.h>
  #include <openssl/evp.h>
  #include <openssl/rand.h>
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
index 7cbaf0b..807983f 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
@@ -1,4 +1,4 @@
-From 827fe3b0253aab33472828f40ad05934cc0261b8 Mon Sep 17 00:00:00 2001
+From 972df16e9599dffddf5d714a4cbf43008c771122 Mon Sep 17 00:00:00 2001
 From: Jackie Huang <jackie.huang@windriver.com>
 Date: Wed, 14 Jan 2015 15:10:06 +0800
 Subject: [PATCH] testing: add the output format for ptest
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-accept-configure-options-from-env.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-accept-configure-options-from-env.patch
deleted file mode 100644
index b0dbf5a..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-accept-configure-options-from-env.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Reproducible build: To avoid build host paths being written into binaries,
-accept NETSNMP_CONFIGURE_OPTIONS from the environment.
-NETSNMP_CONFIGURE_OPTIONS can be set either null or to a fixed value.
-
---- net-snmp-5.8.original/configure.ac	2018-11-20 17:41:39.926529072 +1300
-+++ net-snmp-5.8/configure.ac	2018-11-20 17:54:44.488180224 +1300
-@@ -28,7 +28,7 @@
- #
- # save the configure arguments
- #
--AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"$ac_configure_args",
-+AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"${NETSNMP_CONFIGURE_OPTIONS-$ac_configure_args}",
-   [configure options specified])
- CONFIGURE_OPTIONS="\"$ac_configure_args\""
- AC_SUBST(CONFIGURE_OPTIONS)
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
index 4316c7a..bf1e7be 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
@@ -1,11 +1,22 @@
+From 84e362fe97f50fbad69f083bc2d8fe18f83eb2f7 Mon Sep 17 00:00:00 2001
+From: "douglas.royds" <douglas.royds@taitradio.com>
+Date: Wed, 21 Nov 2018 13:52:18 +1300
+Subject: [PATCH] net-snmp: Reproducibility: Don't check build host for
+
 Reproducible build: Don't check for /etc/printcap on the build machine when
 cross-compiling. Use AC_CHECK_FILE to set the cached variable
 ac_cv_file__etc_printcap instead. When cross-compiling, this variable should be
 set in the environment to "yes" or "no" as appropriate for the target platform.
 
---- net-snmp-5.8.original/configure.d/config_os_misc4	2018-11-20 17:05:03.986274522 +1300
-+++ net-snmp-5.8/configure.d/config_os_misc4	2018-11-20 17:08:32.250700448 +1300
-@@ -116,9 +116,9 @@
+---
+ configure.d/config_os_misc4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.d/config_os_misc4 b/configure.d/config_os_misc4
+index 6f23c8e..8cea75a 100644
+--- a/configure.d/config_os_misc4
++++ b/configure.d/config_os_misc4
+@@ -99,9 +99,9 @@ if test x$LPSTAT_PATH != x; then
  	[Path to the lpstat command])
      AC_DEFINE(HAVE_LPSTAT, 1, [Set if the lpstat command is available])
  fi
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
rename to meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb
index 67316db..5df1f93 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb
@@ -25,13 +25,8 @@
            file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \
            file://net-snmp-fix-for-disable-des.patch \
            file://reproducibility-have-printcap.patch \
-           file://reproducibility-accept-configure-options-from-env.patch \
-           file://0001-net-snmp-fix-compile-error-disable-des.patch \
-           file://0001-Add-pkg-config-support-for-building-applications-and.patch \
-           file://CVE-2019-20892.patch \
            "
-SRC_URI[md5sum] = "63bfc65fbb86cdb616598df1aff6458a"
-SRC_URI[sha256sum] = "b2fc3500840ebe532734c4786b0da4ef0a5f67e51ef4c86b3345d697e4976adf"
+SRC_URI[sha256sum] = "04303a66f85d6d8b16d3cc53bde50428877c82ab524e17591dfceaeb94df6071"
 
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/net-snmp/files/net-snmp/"
 UPSTREAM_CHECK_REGEX = "/net-snmp/(?P<pver>\d+(\.\d+)+)/"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc
index 70c32b7..11b7d57 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc
+++ b/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc
@@ -40,7 +40,7 @@
 PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap"
 PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam"
 
-inherit autotools update-rc.d useradd systemd pkgconfig multilib_header
+inherit autotools update-rc.d useradd systemd pkgconfig multilib_header update-alternatives
 
 CFLAGS += "-fcommon"
 
@@ -237,3 +237,7 @@
 pkg_prerm_${PN}-isisd () {
     ${sysconfdir}/init.d/quagga stop isisd
 }
+
+ALTERNATIVE_${PN} = "pimd"
+ALTERNATIVE_LINK_NAME[pimd] = "${sbindir}/pimd"
+
diff --git a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.10.bb b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.11.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.10.bb
rename to meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.11.bb
index 8d82ee4..09b7931 100644
--- a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.10.bb
+++ b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.11.bb
@@ -6,7 +6,7 @@
 
 PV = "6.10"
 
-SRCREV = "5ff5fc2ecc10353fd39ad508db5c2828fd2d8d9a"
+SRCREV = "ded4e81796a18cde73329e838357f084aa05720f"
 SRC_URI = "git://git.samba.org/cifs-utils.git"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb b/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
new file mode 100644
index 0000000..c641c26
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
@@ -0,0 +1,42 @@
+SUMMARY = "A suite for man in the middle attacks"
+HOMEPAGE = "https://github.com/Ettercap/ettercap"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit cmake
+
+DEPENDS += "ethtool \
+            geoip \
+            librepo \
+            libnet \
+            libpcap \
+            ncurses \
+            openssl \
+            zlib \
+            bison-native \
+            flex-native \
+            "
+
+RDEPENDS_${PN} += "bash ethtool libgcc"
+
+SRC_URI = "gitsm://github.com/Ettercap/ettercap"
+
+SRCREV = "7281fbddb7da7478beb1d21e3cb105fff3778b31"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+    -DCMAKE_SKIP_RPATH=TRUE \
+    -DBUNDLED_LIBS=ON \
+    -DENABLE_IPV6=ON \
+    -DENABLE_GTK=OFF \
+"
+
+# Replaces default encoding set (ISO-8859-1) with UTF-8 in ettercap
+# configuration file installed by the package.
+# It ensures that all characters are properly decoded and avoids
+# any fatal errors while running in text mode (-T).
+do_install_append() {
+        sed -i 's@utf8_encoding.*@utf8_encoding = "UTF-8"@g' \
+		${D}/etc/ettercap/etter.conf
+}
diff --git a/meta-openembedded/meta-networking/recipes-support/fping/fping_4.4.bb b/meta-openembedded/meta-networking/recipes-support/fping/fping_5.0.bb
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-support/fping/fping_4.4.bb
rename to meta-openembedded/meta-networking/recipes-support/fping/fping_5.0.bb
index 125fdfa..54606e8 100644
--- a/meta-openembedded/meta-networking/recipes-support/fping/fping_4.4.bb
+++ b/meta-openembedded/meta-networking/recipes-support/fping/fping_5.0.bb
@@ -12,7 +12,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=c6170fbadddfcd74f011515291d96901"
 
 SRC_URI = "http://www.fping.org/dist/fping-${PV}.tar.gz"
-SRC_URI[sha256sum] = "9f854b65a52dc7b1749d6743e35d0a6268179d1a724267339fc9a066b2b72d11"
+SRC_URI[sha256sum] = "ed38c0b9b64686a05d1b3bc1d66066114a492e04e44eef1821d43b1263cd57b8"
 
 S = "${WORKDIR}/fping-${PV}"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb b/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
index 2faa7cb..df9e85d 100644
--- a/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
@@ -12,9 +12,13 @@
 
 EXTRA_OECONF_append_libc-musl = " --embedded-libc"
 
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
 
 do_configure() {
     oe_runconf
 }
 
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN} = "pimd"
+ALTERNATIVE_LINK_NAME[pimd] = "${sbindir}/pimd"
diff --git a/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb b/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
index 07e3ffe..3739c49 100644
--- a/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
@@ -12,7 +12,7 @@
 SRC_URI[md5sum] = "65b4e0df4934a6cd08c506cabcbe584f"
 SRC_URI[sha256sum] = "22c37dc90c871e8e052b2cab0ad219d010fa938608cd66b21c8f3c759046fa36"
 
-inherit autotools
+inherit autotools update-alternatives
 
 PACKAGECONFIG ?= "ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
 
@@ -33,3 +33,16 @@
     ln -s ssmtp ${D}${sbindir}/newaliases
     ln -s ssmtp ${D}${sbindir}/mailq
 }
+
+ALTERNATIVE_PRIORITY_${PN} = "100"
+
+ALTERNATIVE_${PN} = "mailq newalias sendmail"
+ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
+ALTERNATIVE_LINK_NAME[newalias] = "${sbindir}/newalias"
+ALTERNATIVE_LINK_NAME[mailq] = "${sbindir}/mailq"
+
+ALTERNATIVE_PRIORITY_${PN}-doc = "100"
+ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
+ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1"
+ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1"
+ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1"
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.2.5.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.2.6.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.2.5.bb
rename to meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.2.6.bb
index a6c09d4..916c5b7 100644
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.2.5.bb
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.2.6.bb
@@ -12,7 +12,7 @@
 
 UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
 
-SRC_URI[sha256sum] = "bd89052a5766cce08b1090df49628567e48cdd24bbaa47667c851bac6aaac940"
+SRC_URI[sha256sum] = "ebb1eebe39bcecee02195dc328dd25f6862fc9e9dea4c2e29eae50537d5eb4f2"
 
 PE = "1"
 
diff --git a/meta-openembedded/meta-oe/README b/meta-openembedded/meta-oe/README
index 347816b..6a0d7c0 100644
--- a/meta-openembedded/meta-oe/README
+++ b/meta-openembedded/meta-oe/README
@@ -17,7 +17,7 @@
 Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
 
 When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][PATCH'
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix="meta-oe][PATCH"'
 
 You are encouraged to fork the mirror on GitHub https://github.com/openembedded/openembedded-core
 to share your patches, this is preferred for patch sets consisting of more than one patch.
diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf
index 5bf1f6c..5b79b59 100644
--- a/meta-openembedded/meta-oe/conf/layer.conf
+++ b/meta-openembedded/meta-oe/conf/layer.conf
@@ -27,6 +27,7 @@
 # to ensure yocto compatibility check pass
 BBFILES_DYNAMIC += " \
 meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bb \
+networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/recipes-*/*/*.bb \
 perl-layer:${LAYERDIR}/dynamic-layers/perl-layer/recipes-*/*/*.bb \
 "
 
@@ -91,6 +92,7 @@
   source-han-sans-jp-fonts->fontconfig \
   source-han-sans-kr-fonts->fontconfig \
   source-han-sans-tw-fonts->fontconfig \
+  source-code-pro-fonts->fontconfig \
 "
 
 DEFAULT_TEST_SUITES_pn-meta-oe-ptest-image = " ${PTESTTESTSUITE}"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch
new file mode 100644
index 0000000..f5c2cf2
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch
@@ -0,0 +1,448 @@
+From 3690dc5f567906c45f057509305fbaa021b33adb Mon Sep 17 00:00:00 2001
+From: Yichao Yu <yyc1992@gmail.com>
+Date: Tue, 15 Sep 2020 12:35:46 -0700
+Subject: [PATCH] Fix compilation with -fno-common.
+
+Making all other archs consistent with IA64 which should not have this problem.
+Also move the FIXME to the correct place.
+
+Also add some minimum comments about this...
+
+Upstream-Status: Backport [https://github.com/libunwind/libunwind/pull/166/commits/29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/unwind/dist/src/aarch64/Ginit.c   | 15 +++++++--------
+ src/third_party/unwind/dist/src/arm/Ginit.c       | 15 +++++++--------
+ .../src/coredump/_UPT_get_dyn_info_list_addr.c    |  5 +++++
+ src/third_party/unwind/dist/src/hppa/Ginit.c      | 15 +++++++--------
+ src/third_party/unwind/dist/src/ia64/Ginit.c      |  1 +
+ .../unwind/dist/src/mi/Gfind_dynamic_proc_info.c  |  1 +
+ src/third_party/unwind/dist/src/mips/Ginit.c      | 15 +++++++--------
+ src/third_party/unwind/dist/src/ppc32/Ginit.c     | 11 +++++++----
+ src/third_party/unwind/dist/src/ppc64/Ginit.c     | 11 +++++++----
+ .../dist/src/ptrace/_UPT_get_dyn_info_list_addr.c |  5 +++++
+ src/third_party/unwind/dist/src/s390x/Ginit.c     | 15 +++++++--------
+ src/third_party/unwind/dist/src/sh/Ginit.c        | 15 +++++++--------
+ src/third_party/unwind/dist/src/tilegx/Ginit.c    | 15 +++++++--------
+ src/third_party/unwind/dist/src/x86/Ginit.c       | 15 +++++++--------
+ src/third_party/unwind/dist/src/x86_64/Ginit.c    | 15 +++++++--------
+ 15 files changed, 89 insertions(+), 80 deletions(-)
+
+diff --git a/src/third_party/unwind/dist/src/aarch64/Ginit.c b/src/third_party/unwind/dist/src/aarch64/Ginit.c
+index dec235c829..35389762f2 100644
+--- a/src/third_party/unwind/dist/src/aarch64/Ginit.c
++++ b/src/third_party/unwind/dist/src/aarch64/Ginit.c
+@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -78,7 +71,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/arm/Ginit.c b/src/third_party/unwind/dist/src/arm/Ginit.c
+index 2720d063a2..0bac0d72da 100644
+--- a/src/third_party/unwind/dist/src/arm/Ginit.c
++++ b/src/third_party/unwind/dist/src/arm/Ginit.c
+@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c
+index 0d11905566..739ed0569b 100644
+--- a/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c
++++ b/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c
+@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ 
+ #else
+ 
++/* XXX fix me: there is currently no way to locate the dyn-info list
++       by a remote unwinder.  On ia64, this is done via a special
++       unwind-table entry.  Perhaps something similar can be done with
++       DWARF2 unwind info.  */
++
+ static inline int
+ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+                int *countp)
+diff --git a/src/third_party/unwind/dist/src/hppa/Ginit.c b/src/third_party/unwind/dist/src/hppa/Ginit.c
+index 461e4b93da..265455a68c 100644
+--- a/src/third_party/unwind/dist/src/hppa/Ginit.c
++++ b/src/third_party/unwind/dist/src/hppa/Ginit.c
+@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -81,7 +74,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/ia64/Ginit.c b/src/third_party/unwind/dist/src/ia64/Ginit.c
+index b09a2ad57c..8601bb3ca8 100644
+--- a/src/third_party/unwind/dist/src/ia64/Ginit.c
++++ b/src/third_party/unwind/dist/src/ia64/Ginit.c
+@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+   if (!_U_dyn_info_list_addr)
+     return -UNW_ENOINFO;
+ #endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+   *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+diff --git a/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c b/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c
+index 98d3501286..2e7c62e5e8 100644
+--- a/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c
++++ b/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c
+@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
+     return -UNW_ENOINFO;
+ #endif
+ 
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+   list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr ();
+   for (di = list->first; di; di = di->next)
+     if (ip >= di->start_ip && ip < di->end_ip)
+diff --git a/src/third_party/unwind/dist/src/mips/Ginit.c b/src/third_party/unwind/dist/src/mips/Ginit.c
+index 3df170c754..bf7a8f5a8f 100644
+--- a/src/third_party/unwind/dist/src/mips/Ginit.c
++++ b/src/third_party/unwind/dist/src/mips/Ginit.c
+@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -86,7 +79,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/ppc32/Ginit.c b/src/third_party/unwind/dist/src/ppc32/Ginit.c
+index ba302448a3..7b45455807 100644
+--- a/src/third_party/unwind/dist/src/ppc32/Ginit.c
++++ b/src/third_party/unwind/dist/src/ppc32/Ginit.c
+@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -104,7 +101,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/ppc64/Ginit.c b/src/third_party/unwind/dist/src/ppc64/Ginit.c
+index 4c88cd6e77..7bfb395a79 100644
+--- a/src/third_party/unwind/dist/src/ppc64/Ginit.c
++++ b/src/third_party/unwind/dist/src/ppc64/Ginit.c
+@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -108,7 +105,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c
+index cc5ed04418..16671d453e 100644
+--- a/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c
++++ b/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c
+@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ 
+ #else
+ 
++/* XXX fix me: there is currently no way to locate the dyn-info list
++       by a remote unwinder.  On ia64, this is done via a special
++       unwind-table entry.  Perhaps something similar can be done with
++       DWARF2 unwind info.  */
++
+ static inline int
+ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+                int *countp)
+diff --git a/src/third_party/unwind/dist/src/s390x/Ginit.c b/src/third_party/unwind/dist/src/s390x/Ginit.c
+index f0886ac933..db01743c06 100644
+--- a/src/third_party/unwind/dist/src/s390x/Ginit.c
++++ b/src/third_party/unwind/dist/src/s390x/Ginit.c
+@@ -50,8 +50,6 @@ static struct unw_addr_space local_addr_space;
+ 
+ unw_addr_space_t unw_local_addr_space = &local_addr_space;
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+ static inline void *
+ uc_addr (ucontext_t *uc, int reg)
+ {
+@@ -75,11 +73,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -90,7 +83,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/sh/Ginit.c b/src/third_party/unwind/dist/src/sh/Ginit.c
+index 52988a721e..9fe96d2bd4 100644
+--- a/src/third_party/unwind/dist/src/sh/Ginit.c
++++ b/src/third_party/unwind/dist/src/sh/Ginit.c
+@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -75,7 +68,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/tilegx/Ginit.c b/src/third_party/unwind/dist/src/tilegx/Ginit.c
+index 7564a558be..925e641324 100644
+--- a/src/third_party/unwind/dist/src/tilegx/Ginit.c
++++ b/src/third_party/unwind/dist/src/tilegx/Ginit.c
+@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -81,7 +74,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/x86/Ginit.c b/src/third_party/unwind/dist/src/x86/Ginit.c
+index f6b8dc27d4..3cec74a216 100644
+--- a/src/third_party/unwind/dist/src/x86/Ginit.c
++++ b/src/third_party/unwind/dist/src/x86/Ginit.c
+@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -71,7 +64,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+diff --git a/src/third_party/unwind/dist/src/x86_64/Ginit.c b/src/third_party/unwind/dist/src/x86_64/Ginit.c
+index 6161da6401..5c4e4269a6 100644
+--- a/src/third_party/unwind/dist/src/x86_64/Ginit.c
++++ b/src/third_party/unwind/dist/src/x86_64/Ginit.c
+@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space;
+ 
+ unw_addr_space_t unw_local_addr_space = &local_addr_space;
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -66,7 +59,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
index 1908846..b8a3252 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -1,4 +1,4 @@
-From 1b2e24e14ee72e54e466be2512c78272f62d60b4 Mon Sep 17 00:00:00 2001
+From 8295bb6a60896fed54d6450bca091aea4eea4fb2 Mon Sep 17 00:00:00 2001
 From: Vincent Prince <vincent.prince.fr@gmail.com>
 Date: Mon, 16 Sep 2019 13:21:44 +0200
 Subject: [PATCH 01/10] Tell scons to use build settings from environment
@@ -7,14 +7,14 @@
 Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com>
 Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
 ---
- SConstruct                | 8 ++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
+ SConstruct | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index 7ebbcbc..e63cf15 100644
+index 89c044ab78..2044c0ddb8 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -608,6 +608,7 @@ def variable_arch_converter(val):
+@@ -593,6 +593,7 @@ def variable_arch_converter(val):
          'amd64':  'x86_64',
          'emt64':   'x86_64',
          'x86':    'i386',
@@ -22,7 +22,7 @@
      }
      val = val.lower()
  
-@@ -695,7 +696,8 @@ env_vars.Add(
+@@ -723,7 +724,8 @@ env_vars.Add(
  )
  
  env_vars.Add('CC',
@@ -32,7 +32,7 @@
  
  env_vars.Add('CCFLAGS',
      help='Sets flags for the C and C++ compiler',
-@@ -715,7 +717,8 @@ env_vars.Add('CPPPATH',
+@@ -743,7 +745,8 @@ env_vars.Add('CPPPATH',
      converter=variable_shlex_converter)
  
  env_vars.Add('CXX',
@@ -42,15 +42,14 @@
  
  env_vars.Add('CXXFLAGS',
      help='Sets flags for the C++ compiler',
-@@ -1018,6 +1021,7 @@ envDict = dict(BUILD_ROOT=buildDir,
-                )
+@@ -1127,6 +1130,7 @@ if get_option('build-tools') == 'next' or get_option('ninja') == 'next':
+     SCons.Tool.DefaultToolpath.insert(0, os.path.abspath('site_scons/site_tools/next'))
  
  env = Environment(variables=env_vars, **envDict)
 +env.PrependENVPath('PATH', os.getenv('PATH'))
- del envDict
  
- for var in ['CC', 'CXX']:
- 
+ # Only print the spinner if stdout is a tty
+ if sys.stdout.isatty():
 -- 
-2.7.4
+2.24.0
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
index d98fa56..8d82be1 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -1,4 +1,4 @@
-From d701ceeb15662038435b80ba556a80c17f76d2dc Mon Sep 17 00:00:00 2001
+From 6332823f9fdcb571305b716330e67d0b38810868 Mon Sep 17 00:00:00 2001
 From: Vincent Prince <vincent.prince.fr@gmail.com>
 Date: Mon, 16 Sep 2019 13:30:13 +0200
 Subject: [PATCH 03/10] Use __GLIBC__ to control use of gnu_get_libc_version
@@ -10,7 +10,7 @@
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
-index cccb91c..45c4b7d 100644
+index a968c54727..0d8b8874e2 100644
 --- a/src/mongo/util/processinfo_linux.cpp
 +++ b/src/mongo/util/processinfo_linux.cpp
 @@ -44,10 +44,10 @@
@@ -27,7 +27,7 @@
  #endif
  
  #include <boost/filesystem.hpp>
-@@ -546,7 +546,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
+@@ -617,7 +617,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
      std::stringstream ss;
      ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__;
      bExtra.append("libcVersion", ss.str());
@@ -37,5 +37,5 @@
  #endif
      if (!verSig.empty())
 -- 
-2.7.4
+2.24.0
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
index b9c6704..958e09c 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -1,4 +1,4 @@
-From 20fcbf2a05ee6542aba942f6006d149db70fb9ce Mon Sep 17 00:00:00 2001
+From 4e7f15346682482bc2071c7209dec97507d3bc4c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 2 Sep 2017 10:03:37 -0700
 Subject: [PATCH 02/10] Use long long instead of int64_t
@@ -8,12 +8,13 @@
 since this function expects long long as parameter and not int64_t
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
 ---
  src/mongo/util/procparser.cpp | 10 +++++-----
  1 file changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp
-index c574a3f..5ea66b7 100644
+index 24b9d1e2c9..0f274cfff6 100644
 --- a/src/mongo/util/procparser.cpp
 +++ b/src/mongo/util/procparser.cpp
 @@ -261,7 +261,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
@@ -23,7 +24,7 @@
 -                    uint64_t value;
 +                    long long  value;
  
-                     if (!parseNumberFromString(stringValue, &value).isOK()) {
+                     if (!NumberParser{}(stringValue, &value).isOK()) {
                          value = 0;
 @@ -273,7 +273,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
              } else {
@@ -32,7 +33,7 @@
 -                uint64_t value;
 +                long long value;
  
-                 if (!parseNumberFromString(stringValue, &value).isOK()) {
+                 if (!NumberParser{}(stringValue, &value).isOK()) {
                      value = 0;
 @@ -366,7 +366,7 @@ Status parseProcMemInfo(const std::vector<StringData>& keys,
  
@@ -41,7 +42,7 @@
 -            uint64_t value;
 +            long long value;
  
-             if (!parseNumberFromString(stringValue, &value).isOK()) {
+             if (!NumberParser{}(stringValue, &value).isOK()) {
                  value = 0;
 @@ -522,7 +522,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
                            StringData data,
@@ -59,8 +60,8 @@
 -                uint64_t value;
 +                long long value;
  
-                 if (!parseNumberFromString(stringValue, &value).isOK()) {
+                 if (!NumberParser{}(stringValue, &value).isOK()) {
                      value = 0;
 -- 
-2.7.4
+2.24.0
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch
new file mode 100644
index 0000000..df4cee2
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch
@@ -0,0 +1,714 @@
+From 44272ce47e768e090263df5cb9cb7ce17e544ad3 Mon Sep 17 00:00:00 2001
+From: Vincent Prince <vincent.prince.external@saftbatteries.com>
+Date: Tue, 15 Sep 2020 11:40:15 +0200
+Subject: [PATCH] kms-message: bump libmongocrypto to v1.0.4
+
+This fixes compilation with alpinelinux
+see https://github.com/mongodb/libmongocrypt/pull/89
+
+Upstream-Status: Pending
+
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+---
+ .../kms-message/THIRD_PARTY_NOTICES           |  2 +-
+ src/third_party/kms-message/src/hexlify.c     | 21 +----
+ src/third_party/kms-message/src/hexlify.h     |  2 -
+ .../kms-message/src/kms_crypto_apple.c        |  5 +
+ .../kms-message/src/kms_crypto_libcrypto.c    | 94 +++++++++++++++++++
+ .../kms-message/src/kms_crypto_none.c         |  4 +
+ .../kms-message/src/kms_crypto_windows.c      |  4 +
+ .../kms-message/src/kms_decrypt_request.c     |  2 +-
+ .../kms-message/src/kms_encrypt_request.c     |  2 +-
+ src/third_party/kms-message/src/kms_kv_list.c | 11 ++-
+ .../kms-message/src/kms_message/kms_message.h |  2 +
+ .../src/kms_message/kms_message_defines.h     | 10 ++
+ src/third_party/kms-message/src/kms_port.c    | 33 +++++++
+ src/third_party/kms-message/src/kms_port.h    | 27 +++---
+ src/third_party/kms-message/src/kms_request.c | 41 +++++---
+ .../kms-message/src/kms_request_str.c         | 13 ++-
+ .../kms-message/src/kms_request_str.h         |  5 -
+ .../kms-message/src/kms_response_parser.c     | 26 ++++-
+ .../scripts/kms_message_get_sources.sh        |  2 +-
+ 19 files changed, 244 insertions(+), 62 deletions(-)
+ create mode 100644 src/third_party/kms-message/src/kms_crypto_libcrypto.c
+ create mode 100644 src/third_party/kms-message/src/kms_port.c
+
+diff --git a/src/third_party/kms-message/THIRD_PARTY_NOTICES b/src/third_party/kms-message/THIRD_PARTY_NOTICES
+index 3fc095170c..4110c1b91e 100644
+--- a/src/third_party/kms-message/THIRD_PARTY_NOTICES
++++ b/src/third_party/kms-message/THIRD_PARTY_NOTICES
+@@ -1,4 +1,4 @@
+-License notice for common-b64.c
++License notice for kms_b64.c
+ -------------------------------------------------------------------------------
+ 
+ ISC License
+diff --git a/src/third_party/kms-message/src/hexlify.c b/src/third_party/kms-message/src/hexlify.c
+index be9ee030b9..941fc93d1b 100644
+--- a/src/third_party/kms-message/src/hexlify.c
++++ b/src/third_party/kms-message/src/hexlify.c
+@@ -24,6 +24,8 @@ char *
+ hexlify (const uint8_t *buf, size_t len)
+ {
+    char *hex_chars = malloc (len * 2 + 1);
++   KMS_ASSERT (hex_chars);
++
+    char *p = hex_chars;
+    size_t i;
+ 
+@@ -35,22 +37,3 @@ hexlify (const uint8_t *buf, size_t len)
+ 
+    return hex_chars;
+ }
+-
+-uint8_t *
+-unhexlify (const char *hex_chars, size_t *len)
+-{
+-   uint8_t *buf;
+-   uint8_t *pos;
+-
+-   *len = strlen (hex_chars) / 2;
+-   buf = malloc (*len);
+-   pos = buf;
+-
+-   while (*hex_chars) {
+-      KMS_ASSERT (1 == sscanf (hex_chars, "%2hhx", pos));
+-      pos++;
+-      hex_chars += 2;
+-   }
+-
+-   return buf;
+-}
+diff --git a/src/third_party/kms-message/src/hexlify.h b/src/third_party/kms-message/src/hexlify.h
+index e0096eb6ca..a6a504ebe8 100644
+--- a/src/third_party/kms-message/src/hexlify.h
++++ b/src/third_party/kms-message/src/hexlify.h
+@@ -19,5 +19,3 @@
+ 
+ char *
+ hexlify (const uint8_t *buf, size_t len);
+-uint8_t *
+-unhexlify (const char *hex_chars, size_t *len);
+diff --git a/src/third_party/kms-message/src/kms_crypto_apple.c b/src/third_party/kms-message/src/kms_crypto_apple.c
+index 61da0a6288..a26e0d65e8 100644
+--- a/src/third_party/kms-message/src/kms_crypto_apple.c
++++ b/src/third_party/kms-message/src/kms_crypto_apple.c
+@@ -16,9 +16,12 @@
+ 
+ #include "kms_crypto.h"
+ 
++#ifdef KMS_MESSAGE_ENABLE_CRYPTO_COMMON_CRYPTO
++
+ #include <CommonCrypto/CommonDigest.h>
+ #include <CommonCrypto/CommonHMAC.h>
+ 
++
+ int
+ kms_crypto_init ()
+ {
+@@ -54,3 +57,5 @@ kms_sha256_hmac (void *unused_ctx,
+    CCHmac (kCCHmacAlgSHA256, key_input, key_len, input, len, hash_out);
+    return true;
+ }
++
++#endif /* KMS_MESSAGE_ENABLE_CRYPTO_COMMON_CRYPTO */
+diff --git a/src/third_party/kms-message/src/kms_crypto_libcrypto.c b/src/third_party/kms-message/src/kms_crypto_libcrypto.c
+new file mode 100644
+index 0000000000..6f25657fdd
+--- /dev/null
++++ b/src/third_party/kms-message/src/kms_crypto_libcrypto.c
+@@ -0,0 +1,94 @@
++/*
++ * Copyright 2018-present MongoDB, Inc.
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#include "kms_crypto.h"
++
++#ifdef KMS_MESSAGE_ENABLE_CRYPTO_LIBCRYPTO
++
++#include <openssl/sha.h>
++#include <openssl/evp.h>
++#include <openssl/hmac.h>
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
++   (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
++static EVP_MD_CTX *
++EVP_MD_CTX_new (void)
++{
++   return calloc (sizeof (EVP_MD_CTX), 1);
++}
++
++static void
++EVP_MD_CTX_free (EVP_MD_CTX *ctx)
++{
++   EVP_MD_CTX_cleanup (ctx);
++   free (ctx);
++}
++#endif
++
++int
++kms_crypto_init ()
++{
++   return 0;
++}
++
++void
++kms_crypto_cleanup ()
++{
++}
++
++bool
++kms_sha256 (void *unused_ctx,
++            const char *input,
++            size_t len,
++            unsigned char *hash_out)
++{
++   EVP_MD_CTX *digest_ctxp = EVP_MD_CTX_new ();
++   bool rval = false;
++
++   if (1 != EVP_DigestInit_ex (digest_ctxp, EVP_sha256 (), NULL)) {
++      goto cleanup;
++   }
++
++   if (1 != EVP_DigestUpdate (digest_ctxp, input, len)) {
++      goto cleanup;
++   }
++
++   rval = (1 == EVP_DigestFinal_ex (digest_ctxp, hash_out, NULL));
++
++cleanup:
++   EVP_MD_CTX_free (digest_ctxp);
++
++   return rval;
++}
++
++bool
++kms_sha256_hmac (void *unused_ctx,
++                 const char *key_input,
++                 size_t key_len,
++                 const char *input,
++                 size_t len,
++                 unsigned char *hash_out)
++{
++   return HMAC (EVP_sha256 (),
++                key_input,
++                key_len,
++                (unsigned char *) input,
++                len,
++                hash_out,
++                NULL) != NULL;
++}
++
++#endif /* KMS_MESSAGE_ENABLE_CRYPTO_LIBCRYPTO */
+diff --git a/src/third_party/kms-message/src/kms_crypto_none.c b/src/third_party/kms-message/src/kms_crypto_none.c
+index 9ef2147687..94da5abd88 100644
+--- a/src/third_party/kms-message/src/kms_crypto_none.c
++++ b/src/third_party/kms-message/src/kms_crypto_none.c
+@@ -16,6 +16,8 @@
+ 
+ #include "kms_crypto.h"
+ 
++#ifndef KMS_MESSAGE_ENABLE_CRYPTO
++
+ int
+ kms_crypto_init ()
+ {
+@@ -48,3 +50,5 @@ kms_sha256_hmac (void *unused_ctx,
+    /* only gets called if hooks were mistakenly not set */
+    return false;
+ }
++
++#endif /* KMS_MESSAGE_ENABLE_CRYPTO */
+diff --git a/src/third_party/kms-message/src/kms_crypto_windows.c b/src/third_party/kms-message/src/kms_crypto_windows.c
+index ccdc7e095d..8177b0ddc0 100644
+--- a/src/third_party/kms-message/src/kms_crypto_windows.c
++++ b/src/third_party/kms-message/src/kms_crypto_windows.c
+@@ -16,6 +16,8 @@
+ 
+ #include "kms_crypto.h"
+ 
++#ifdef KMS_MESSAGE_ENABLE_CRYPTO_CNG
++
+ // tell windows.h not to include a bunch of headers we don't need:
+ #define WIN32_LEAN_AND_MEAN
+ 
+@@ -130,3 +132,5 @@ cleanup:
+ 
+    return status == STATUS_SUCCESS ? 1 : 0;
+ }
++
++#endif /* KMS_MESSAGE_ENABLE_CRYPTO_CNG */
+diff --git a/src/third_party/kms-message/src/kms_decrypt_request.c b/src/third_party/kms-message/src/kms_decrypt_request.c
+index 06faa43119..f1ca282768 100644
+--- a/src/third_party/kms-message/src/kms_decrypt_request.c
++++ b/src/third_party/kms-message/src/kms_decrypt_request.c
+@@ -48,7 +48,7 @@ kms_decrypt_request_new (const uint8_t *ciphertext_blob,
+    if (!(b64 = malloc (b64_len))) {
+       KMS_ERROR (request,
+                  "Could not allocate %d bytes for base64-encoding payload",
+-                 b64_len);
++                 (int) b64_len);
+       goto done;
+    }
+ 
+diff --git a/src/third_party/kms-message/src/kms_encrypt_request.c b/src/third_party/kms-message/src/kms_encrypt_request.c
+index b5f4d6436e..24b064d95f 100644
+--- a/src/third_party/kms-message/src/kms_encrypt_request.c
++++ b/src/third_party/kms-message/src/kms_encrypt_request.c
+@@ -47,7 +47,7 @@ kms_encrypt_request_new (const uint8_t *plaintext,
+    if (!(b64 = malloc (b64_len))) {
+       KMS_ERROR (request,
+                  "Could not allocate %d bytes for base64-encoding payload",
+-                 b64_len);
++                 (int) b64_len);
+       goto done;
+    }
+ 
+diff --git a/src/third_party/kms-message/src/kms_kv_list.c b/src/third_party/kms-message/src/kms_kv_list.c
+index 2d6845a1aa..0cff3dc2c6 100644
+--- a/src/third_party/kms-message/src/kms_kv_list.c
++++ b/src/third_party/kms-message/src/kms_kv_list.c
+@@ -17,6 +17,7 @@
+ 
+ #include "kms_kv_list.h"
+ #include "kms_message/kms_message.h"
++#include "kms_message_private.h"
+ #include "kms_request_str.h"
+ #include "kms_port.h"
+ #include "sort.h"
+@@ -39,9 +40,12 @@ kms_kv_list_t *
+ kms_kv_list_new (void)
+ {
+    kms_kv_list_t *lst = malloc (sizeof (kms_kv_list_t));
++   KMS_ASSERT (lst);
+ 
+    lst->size = 16;
+    lst->kvs = malloc (lst->size * sizeof (kms_kv_t));
++   KMS_ASSERT (lst->kvs);
++
+    lst->len = 0;
+ 
+    return lst;
+@@ -72,6 +76,7 @@ kms_kv_list_add (kms_kv_list_t *lst,
+    if (lst->len == lst->size) {
+       lst->size *= 2;
+       lst->kvs = realloc (lst->kvs, lst->size * sizeof (kms_kv_t));
++      KMS_ASSERT (lst->kvs);
+    }
+ 
+    kv_init (&lst->kvs[lst->len], key, value);
+@@ -84,7 +89,7 @@ kms_kv_list_find (const kms_kv_list_t *lst, const char *key)
+    size_t i;
+ 
+    for (i = 0; i < lst->len; i++) {
+-      if (0 == strcasecmp (lst->kvs[i].key->str, key)) {
++      if (0 == kms_strcasecmp (lst->kvs[i].key->str, key)) {
+          return &lst->kvs[i];
+       }
+    }
+@@ -119,8 +124,12 @@ kms_kv_list_dup (const kms_kv_list_t *lst)
+    }
+ 
+    dup = malloc (sizeof (kms_kv_list_t));
++   KMS_ASSERT (dup);
++
+    dup->size = dup->len = lst->len;
+    dup->kvs = malloc (lst->len * sizeof (kms_kv_t));
++   KMS_ASSERT (dup->kvs);
++
+ 
+    for (i = 0; i < lst->len; i++) {
+       kv_init (&dup->kvs[i], lst->kvs[i].key, lst->kvs[i].value);
+diff --git a/src/third_party/kms-message/src/kms_message/kms_message.h b/src/third_party/kms-message/src/kms_message/kms_message.h
+index 6ea95dd04c..8048528f2e 100644
+--- a/src/third_party/kms-message/src/kms_message/kms_message.h
++++ b/src/third_party/kms-message/src/kms_message/kms_message.h
+@@ -17,6 +17,8 @@
+ #ifndef KMS_MESSAGE_H
+ #define KMS_MESSAGE_H
+ 
++#include <sys/types.h>
++
+ #include "kms_message_defines.h"
+ #include "kms_request_opt.h"
+ #include "kms_request.h"
+diff --git a/src/third_party/kms-message/src/kms_message/kms_message_defines.h b/src/third_party/kms-message/src/kms_message/kms_message_defines.h
+index a4d019bd77..a539d531ef 100644
+--- a/src/third_party/kms-message/src/kms_message/kms_message_defines.h
++++ b/src/third_party/kms-message/src/kms_message/kms_message_defines.h
+@@ -53,4 +53,14 @@ kms_message_cleanup (void);
+ } /* extern "C" */
+ #endif
+ 
++#ifdef _MSC_VER
++#include <basetsd.h>
++#pragma warning(disable : 4142)
++#ifndef _SSIZE_T_DEFINED
++#define _SSIZE_T_DEFINED
++typedef SSIZE_T ssize_t;
++#endif
++#pragma warning(default : 4142)
++#endif
++
+ #endif /* KMS_MESSAGE_DEFINES_H */
+diff --git a/src/third_party/kms-message/src/kms_port.c b/src/third_party/kms-message/src/kms_port.c
+new file mode 100644
+index 0000000000..ee9e6ed9c9
+--- /dev/null
++++ b/src/third_party/kms-message/src/kms_port.c
+@@ -0,0 +1,33 @@
++/*
++ * Copyright 2020-present MongoDB, Inc.
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#include "kms_port.h"
++#if defined(_WIN32)
++#include <stdlib.h>
++#include <string.h>
++char * kms_strndup (const char *src, size_t len)
++{
++   char *dst = (char *) malloc (len + 1);
++   if (!dst) {
++      return 0;
++   }
++
++   memcpy (dst, src, len);
++   dst[len] = '\0';
++
++   return dst;
++}
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/kms-message/src/kms_port.h b/src/third_party/kms-message/src/kms_port.h
+index c3cbbac369..2123a99dc9 100644
+--- a/src/third_party/kms-message/src/kms_port.h
++++ b/src/third_party/kms-message/src/kms_port.h
+@@ -15,21 +15,18 @@
+  * limitations under the License.
+  */
+ 
+-#if defined(_WIN32)
+-#define strcasecmp _stricmp
+-
+-inline char *
+-strndup (const char *src, size_t len)
+-{
+-   char *dst = (char *) malloc (len + 1);
+-   if (!dst) {
+-      return 0;
+-   }
+-
+-   memcpy (dst, src, len);
+-   dst[len] = '\0';
++#ifndef KMS_PORT_H
++#define KMS_PORT_H
+ 
+-   return dst;
+-}
++#include <stddef.h>
+ 
++#if defined(_WIN32)
++#define kms_strcasecmp _stricmp
++char *
++kms_strndup (const char *src, size_t len);
++#else
++#define kms_strndup strndup
++#define kms_strcasecmp strcasecmp
+ #endif
++
++#endif /* KMS_PORT_H */
+\ No newline at end of file
+diff --git a/src/third_party/kms-message/src/kms_request.c b/src/third_party/kms-message/src/kms_request.c
+index fa2d487123..ac2b07ea6b 100644
+--- a/src/third_party/kms-message/src/kms_request.c
++++ b/src/third_party/kms-message/src/kms_request.c
+@@ -61,6 +61,7 @@ kms_request_new (const char *method,
+    kms_request_t *request = calloc (1, sizeof (kms_request_t));
+    const char *question_mark;
+ 
++   KMS_ASSERT (request);
+    /* parsing may set failed to true */
+    request->failed = false;
+ 
+@@ -92,10 +93,14 @@ kms_request_new (const char *method,
+    request->header_fields = kms_kv_list_new ();
+    request->auto_content_length = true;
+ 
+-   kms_request_set_date (request, NULL);
++   if (!kms_request_set_date (request, NULL)) {
++      return request;
++   }
+ 
+    if (opt && opt->connection_close) {
+-      kms_request_add_header_field (request, "Connection", "close");
++      if (!kms_request_add_header_field (request, "Connection", "close")) {
++         return request;
++      }
+    }
+ 
+    if (opt && opt->crypto.sha256) {
+@@ -164,7 +169,9 @@ kms_request_set_date (kms_request_t *request, const struct tm *tm)
+    kms_request_str_set_chars (request->date, buf, sizeof "YYYYmmDD" - 1);
+    kms_request_str_set_chars (request->datetime, buf, sizeof AMZ_DT_FORMAT - 1);
+    kms_kv_list_del (request->header_fields, "X-Amz-Date");
+-   kms_request_add_header_field (request, "X-Amz-Date", buf);
++   if (!kms_request_add_header_field (request, "X-Amz-Date", buf)) {
++      return false;
++   }
+ 
+    return true;
+ }
+@@ -309,7 +316,8 @@ append_canonical_headers (kms_kv_list_t *lst, kms_request_str_t *str)
+     * values in headers that have multiple values." */
+    for (i = 0; i < lst->len; i++) {
+       kv = &lst->kvs[i];
+-      if (previous_key && 0 == strcasecmp (previous_key->str, kv->key->str)) {
++      if (previous_key &&
++          0 == kms_strcasecmp (previous_key->str, kv->key->str)) {
+          /* duplicate header */
+          kms_request_str_append_char (str, ',');
+          kms_request_str_append_stripped (str, kv->value);
+@@ -339,12 +347,13 @@ append_signed_headers (kms_kv_list_t *lst, kms_request_str_t *str)
+ 
+    for (i = 0; i < lst->len; i++) {
+       kv = &lst->kvs[i];
+-      if (previous_key && 0 == strcasecmp (previous_key->str, kv->key->str)) {
++      if (previous_key &&
++          0 == kms_strcasecmp (previous_key->str, kv->key->str)) {
+          /* duplicate header */
+          continue;
+       }
+ 
+-      if (0 == strcasecmp (kv->key->str, "connection")) {
++      if (0 == kms_strcasecmp (kv->key->str, "connection")) {
+          continue;
+       }
+ 
+@@ -412,7 +421,8 @@ finalize (kms_request_t *request)
+ static int
+ cmp_header_field_names (const void *a, const void *b)
+ {
+-   return strcasecmp (((kms_kv_t *) a)->key->str, ((kms_kv_t *) b)->key->str);
++   return kms_strcasecmp (((kms_kv_t *) a)->key->str,
++                          ((kms_kv_t *) b)->key->str);
+ }
+ 
+ static kms_kv_list_t *
+@@ -447,6 +457,7 @@ kms_request_get_canonical (kms_request_t *request)
+    kms_request_str_append_newline (canonical);
+    normalized = kms_request_str_path_normalized (request->path);
+    kms_request_str_append_escaped (canonical, normalized, false);
++   kms_request_str_destroy (normalized);
+    kms_request_str_append_newline (canonical);
+    append_canonical_query (request, canonical);
+    kms_request_str_append_newline (canonical);
+@@ -454,12 +465,14 @@ kms_request_get_canonical (kms_request_t *request)
+    append_canonical_headers (lst, canonical);
+    kms_request_str_append_newline (canonical);
+    append_signed_headers (lst, canonical);
+-   kms_request_str_append_newline (canonical);
+-   kms_request_str_append_hashed (
+-      &request->crypto, canonical, request->payload);
+-
+-   kms_request_str_destroy (normalized);
+    kms_kv_list_destroy (lst);
++   kms_request_str_append_newline (canonical);
++   if (!kms_request_str_append_hashed (
++          &request->crypto, canonical, request->payload)) {
++      KMS_ERROR (request, "could not generate hash");
++      kms_request_str_destroy (canonical);
++      return NULL;
++   }
+ 
+    return kms_request_str_detach (canonical);
+ }
+@@ -514,6 +527,10 @@ kms_request_get_string_to_sign (kms_request_t *request)
+    kms_request_str_append_chars (sts, "/aws4_request\n", -1);
+ 
+    creq = kms_request_str_wrap (kms_request_get_canonical (request), -1);
++   if (!creq) {
++      goto done;
++   }
++
+    if (!kms_request_str_append_hashed (&request->crypto, sts, creq)) {
+       goto done;
+    }
+diff --git a/src/third_party/kms-message/src/kms_request_str.c b/src/third_party/kms-message/src/kms_request_str.c
+index 0f7c19c972..65207d2f4f 100644
+--- a/src/third_party/kms-message/src/kms_request_str.c
++++ b/src/third_party/kms-message/src/kms_request_str.c
+@@ -51,10 +51,13 @@ kms_request_str_t *
+ kms_request_str_new (void)
+ {
+    kms_request_str_t *s = malloc (sizeof (kms_request_str_t));
++   KMS_ASSERT (s);
+ 
+    s->len = 0;
+    s->size = 16;
+    s->str = malloc (s->size);
++   KMS_ASSERT (s->str);
++
+    s->str[0] = '\0';
+ 
+    return s;
+@@ -64,11 +67,15 @@ kms_request_str_t *
+ kms_request_str_new_from_chars (const char *chars, ssize_t len)
+ {
+    kms_request_str_t *s = malloc (sizeof (kms_request_str_t));
++   KMS_ASSERT (s);
++
+    size_t actual_len;
+ 
+    actual_len = len < 0 ? strlen (chars) : (size_t) len;
+    s->size = actual_len + 1;
+    s->str = malloc (s->size);
++   KMS_ASSERT (s->str);
++
+    memcpy (s->str, chars, actual_len);
+    s->str[actual_len] = '\0';
+    s->len = actual_len;
+@@ -86,6 +93,8 @@ kms_request_str_wrap (char *chars, ssize_t len)
+    }
+ 
+    s = malloc (sizeof (kms_request_str_t));
++   KMS_ASSERT (s);
++
+ 
+    s->str = chars;
+    s->len = len < 0 ? strlen (chars) : (size_t) len;
+@@ -148,8 +157,10 @@ kms_request_str_t *
+ kms_request_str_dup (kms_request_str_t *str)
+ {
+    kms_request_str_t *dup = malloc (sizeof (kms_request_str_t));
++   KMS_ASSERT (dup);
++
+ 
+-   dup->str = strndup (str->str, str->len);
++   dup->str = kms_strndup (str->str, str->len);
+    dup->len = str->len;
+    dup->size = str->len + 1;
+ 
+diff --git a/src/third_party/kms-message/src/kms_request_str.h b/src/third_party/kms-message/src/kms_request_str.h
+index f053a595aa..0898f59067 100644
+--- a/src/third_party/kms-message/src/kms_request_str.h
++++ b/src/third_party/kms-message/src/kms_request_str.h
+@@ -25,11 +25,6 @@
+ #include <stdint.h>
+ #include <string.h>
+ 
+-#if defined(_WIN32)
+-#include <basetsd.h>
+-typedef SSIZE_T ssize_t;
+-#endif // _WIN32
+-
+ typedef struct {
+    char *str;
+    size_t len;
+diff --git a/src/third_party/kms-message/src/kms_response_parser.c b/src/third_party/kms-message/src/kms_response_parser.c
+index 31e4868a68..6f86fac854 100644
+--- a/src/third_party/kms-message/src/kms_response_parser.c
++++ b/src/third_party/kms-message/src/kms_response_parser.c
+@@ -1,7 +1,7 @@
+ #include "kms_message/kms_response_parser.h"
+ #include "kms_message_private.h"
+ 
+-#include "kms_message_private.h"
++#include <errno.h>
+ #include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -24,6 +24,7 @@ _parser_init (kms_response_parser_t *parser)
+    parser->raw_response = kms_request_str_new ();
+    parser->content_length = -1;
+    parser->response = calloc (1, sizeof (kms_response_t));
++   KMS_ASSERT (parser->response);
+    parser->response->headers = kms_kv_list_new ();
+    parser->state = PARSING_STATUS_LINE;
+    parser->start = 0;
+@@ -34,6 +35,8 @@ kms_response_parser_t *
+ kms_response_parser_new (void)
+ {
+    kms_response_parser_t *parser = malloc (sizeof (kms_response_parser_t));
++   KMS_ASSERT (parser);
++
+    _parser_init (parser);
+    return parser;
+ }
+@@ -59,11 +62,26 @@ static bool
+ _parse_int (const char *str, int *result)
+ {
+    char *endptr = NULL;
++   int64_t long_result;
+ 
+-   *result = (int) strtol (str, &endptr, 10);
+-   if (*endptr) {
++   errno = 0;
++   long_result = strtol (str, &endptr, 10);
++   if (endptr == str) {
++      /* No digits were parsed. Consider this an error */
++      return false;
++   }
++   if (endptr != NULL && *endptr != '\0') {
++      /* endptr points to the first invalid character. */
++      return false;
++   }
++   if (errno == EINVAL || errno == ERANGE) {
++      return false;
++   }
++   if (long_result > INT32_MAX || long_result < INT32_MIN) {
+       return false;
+    }
++   *result = (int) long_result;
++
+    return true;
+ }
+ 
+@@ -72,6 +90,8 @@ static bool
+ _parse_int_from_view (const char *str, int start, int end, int *result)
+ {
+    char *num_str = malloc (end - start + 1);
++   KMS_ASSERT (num_str);
++
+    bool ret;
+ 
+    strncpy (num_str, str + start, end - start);
+diff --git a/src/third_party/scripts/kms_message_get_sources.sh b/src/third_party/scripts/kms_message_get_sources.sh
+index 6ad2fbb0e6..52ce21b9dd 100755
+--- a/src/third_party/scripts/kms_message_get_sources.sh
++++ b/src/third_party/scripts/kms_message_get_sources.sh
+@@ -18,7 +18,7 @@ if grep -q Microsoft /proc/version; then
+ fi
+ 
+ NAME=libmongocrypt
+-REVISION=59c8c17bbdfa1cf0fdec60cfdde73a437a868221
++REVISION=052f7fc610f0cea83a2adf3dd263a5ff04833371
+ 
+ if grep -q Microsoft /proc/version; then
+     SRC_ROOT=$(wslpath -u $(powershell.exe -Command "Get-ChildItem Env:TEMP | Get-Content | Write-Host"))
+-- 
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch
new file mode 100644
index 0000000..a928835
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch
@@ -0,0 +1,29 @@
+From efd79bda1b85a5a4398a71e5ea2bc00ee4b0ea46 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Sep 2020 18:20:27 -0700
+Subject: [PATCH] stacktrace: Define ARCH_BITS for x86
+
+stacktrace_somap.cpp:92:33: error: 'ELFCLASSARCH_BITS' was not declared in this scope
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/stacktrace_somap.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/stacktrace_somap.cpp b/src/mongo/util/stacktrace_somap.cpp
+index f7ba66a142..2231948ce8 100644
+--- a/src/mongo/util/stacktrace_somap.cpp
++++ b/src/mongo/util/stacktrace_somap.cpp
+@@ -83,7 +83,7 @@ void addUnameToSoMap(BSONObjBuilder* soMap) {
+ #define ARCH_BITS __ELF_NATIVE_CLASS
+ #elif defined(__x86_64__) || defined(__aarch64__)
+ #define ARCH_BITS 64
+-#elif defined(__arm__)
++#elif defined(__i386__) || defined(__arm__)
+ #define ARCH_BITS 32
+ #else
+ #error Unknown target architecture.
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
index 869d284..57f4168 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
@@ -1,4 +1,4 @@
-From 73c6374ceb0c062e91210cc9ef3e0e9fa30ee514 Mon Sep 17 00:00:00 2001
+From 28f34191eef1e70c24d2f81b66e4dd40dbefcd35 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 2 Sep 2017 12:42:30 -0700
 Subject: [PATCH 04/10] Add a definition for the macro __ELF_NATIVE_CLASS
@@ -6,17 +6,18 @@
 It depends on the native arch's word size.
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
 ---
  src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
  1 file changed, 9 insertions(+)
 
 diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp
-index 1d7b3d7..f81e329 100644
+index 531e21bdc2..fa611499e4 100644
 --- a/src/mongo/util/stacktrace_posix.cpp
 +++ b/src/mongo/util/stacktrace_posix.cpp
-@@ -39,6 +39,15 @@
+@@ -42,6 +42,15 @@
+ #include <iostream>
  #include <string>
- #include <sys/utsname.h>
  
 +#if !defined(__GLIBC__)
 +#if defined __x86_64__ && !defined __ILP32__
@@ -28,8 +29,8 @@
 +#endif
 +
  #include "mongo/base/init.h"
+ #include "mongo/bson/json.h"
  #include "mongo/config.h"
- #include "mongo/db/jsobj.h"
 -- 
-2.7.4
+2.24.0
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
index 3a27aac..910ef0b 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
@@ -2,7 +2,7 @@
 ===================================================================
 --- git.orig/SConstruct
 +++ git/SConstruct
-@@ -884,6 +884,14 @@ env_vars.Add('WINDOWS_OPENSSL_BIN',
+@@ -977,6 +977,14 @@ env_vars.Add('WINDOWS_OPENSSL_BIN',
      help='Sets the path to the openssl binaries for packaging',
      default='c:/openssl/bin')
  
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
index ae84bcb..e4ae307 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
@@ -15,15 +15,16 @@
   if (mongoUnsignedAddOverflow64(tagAndLengthByteCount, derLength, outLength) ||
 
 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
 ---
  src/mongo/util/net/ssl_manager.cpp | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp
-index b93ebe84a4a3..3511eb5d998f 100644
+index 455a1662a5..e8497bc0d1 100644
 --- a/src/mongo/util/net/ssl_manager.cpp
 +++ b/src/mongo/util/net/ssl_manager.cpp
-@@ -782,7 +782,7 @@ class DERToken {
+@@ -810,7 +810,7 @@ public:
       *
       * Returns a DERToken which consists of the (tag, length, value) tuple.
       */
@@ -32,7 +33,7 @@
  
  private:
      DERType _type{DERType::EndOfContent};
-@@ -799,7 +799,7 @@ struct DataType::Handler<DERToken> {
+@@ -827,7 +827,7 @@ struct DataType::Handler<DERToken> {
                         size_t length,
                         size_t* advanced,
                         std::ptrdiff_t debug_offset) {
@@ -41,7 +42,7 @@
  
          auto swPair = DERToken::parse(ConstDataRange(ptr, length), &outLength);
  
-@@ -844,7 +844,7 @@ StatusWith<std::string> readDERString(ConstDataRangeCursor& cdc) {
+@@ -889,7 +889,7 @@ StatusWith<DERInteger> readDERInt(ConstDataRangeCursor& cdc) {
  }
  
  
@@ -50,3 +51,6 @@
      const size_t kTagLength = 1;
      const size_t kTagLengthAndInitialLengthByteLength = kTagLength + 1;
  
+-- 
+2.24.0
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
index 15bd7da..1a7bf0f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
@@ -1,4 +1,4 @@
-From c9fc9e9a44b0fb764ce86a5e57f17d3c5bbfd8cd Mon Sep 17 00:00:00 2001
+From 298d958148f1fb2bb7725fed15c68c09677c14c9 Mon Sep 17 00:00:00 2001
 From: Vincent Prince <vincent.prince.fr@gmail.com>
 Date: Mon, 16 Sep 2019 13:37:10 +0200
 Subject: [PATCH 05/10] Add alises for arm64 which is same as aarch64
@@ -12,10 +12,10 @@
  3 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/SConstruct b/SConstruct
-index e63cf15..5593c78 100644
+index 448939bdd0..abfd816f3e 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -1129,6 +1129,7 @@ elif endian == "big":
+@@ -1228,6 +1228,7 @@ if endian == "auto":
  processor_macros = {
      'arm'        : { 'endian': 'little', 'defines': ('__arm__',) },
      'aarch64'    : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
@@ -24,10 +24,10 @@
      'ppc64le'    : { 'endian': 'little', 'defines': ('__powerpc64__',)},
      's390x'      : { 'endian': 'big',    'defines': ('__s390x__',)},
 diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript
-index f23c071..fb82cd6 100644
+index 58e1b7ba65..bffe83b462 100644
 --- a/src/third_party/IntelRDFPMathLib20U1/SConscript
 +++ b/src/third_party/IntelRDFPMathLib20U1/SConscript
-@@ -308,7 +308,7 @@ if processor == 'i386' or processor == 'emscripten':
+@@ -309,7 +309,7 @@ if processor == 'i386' or processor == 'emscripten':
  elif processor == 'arm':
      cpp_defines['IA32'] = '1'
      cpp_defines['ia32'] = '1'
@@ -37,7 +37,7 @@
      cpp_defines['EFI2'] = '1'
  # Using 64 bit little endian
 diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript
-index cdd090b..97a1b3b 100644
+index d6bd665e23..2f1e656a19 100644
 --- a/src/third_party/wiredtiger/SConscript
 +++ b/src/third_party/wiredtiger/SConscript
 @@ -152,7 +152,7 @@ condition_map = {
@@ -50,5 +50,5 @@
      'X86_HOST'     : env['TARGET_ARCH'] == 'x86_64',
      'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
 -- 
-2.7.4
+2.24.0
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
index 58841ef..a153498 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -9,12 +9,13 @@
            python3-psutil-native python3-regex-native \
            "
 
-inherit scons dos2unix siteinfo python3native
+inherit scons dos2unix siteinfo python3native systemd useradd
 
-PV = "4.2.2"
-#v4.2.2
-SRCREV = "a0bbbff6ada159e19298d37946ac8dc4b497eadf"
-SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.2 \
+PV = "4.4.1"
+#v4.4.1
+SRCREV = "ad91a93a5a31e175f5cbf8c69561e788bbc55ce1"
+SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4 \
+           file://0001-kms-message-bump-libmongocrypto-to-v1.0.4.patch \
            file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
            file://0001-Use-long-long-instead-of-int64_t.patch \
            file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
@@ -24,6 +25,8 @@
            file://0001-Support-deprecated-resolver-functions.patch \
            file://0003-Fix-unknown-prefix-env.patch \
            file://1296.patch \
+           file://0001-Fix-compilation-with-fno-common.patch \
+           file://0001-stacktrace-Define-ARCH_BITS-for-x86.patch \
            "
 SRC_URI_append_libc-musl ="\
            file://0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch \
@@ -35,6 +38,7 @@
            file://0001-asio-Dont-use-experimental-with-clang.patch \
            "
 
+
 S = "${WORKDIR}/git"
 
 COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
@@ -51,26 +55,65 @@
 PACKAGECONFIG[shell] = ",--js-engine=none,,"
 PACKAGECONFIG[system-pcre] = "--use-system-pcre,,libpcre,"
 
-EXTRA_OESCONS = "--prefix=${D}${prefix} \
+EXTRA_OESCONS = "PREFIX=${prefix} \
+                 DESTDIR=${D} \
                  LIBPATH=${STAGING_LIBDIR} \
                  LINKFLAGS='${LDFLAGS}' \
                  CXXFLAGS='${CXXFLAGS}' \
                  TARGET_ARCH=${TARGET_ARCH} \
+                 MONGO_VERSION=${PV} \
+                 OBJCOPY=${OBJCOPY} \
                  --ssl \
                  --disable-warnings-as-errors \
                  --use-system-zlib \
                  --nostrip \
                  --endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
                  --wiredtiger=${@['off','on'][d.getVar('SITEINFO_BITS') != '32']} \
-                 ${PACKAGECONFIG_CONFARGS} \
-                 core"
+                 --separate-debug \
+                 ${PACKAGECONFIG_CONFARGS}"
+
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/${BPN} --shell /bin/false --user-group ${BPN}"
+
 
 scons_do_compile() {
-        ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} || \
+        ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} install-core || \
         die "scons build execution failed."
 }
 
 scons_do_install() {
-        ${STAGING_BINDIR_NATIVE}/scons install ${EXTRA_OESCONS}|| \
-        die "scons install execution failed."
+        # install binaries
+        install -d ${D}${bindir}
+        for i in mongod mongos mongo
+        do
+            if [ -f ${B}/build/opt/mongo/${i} ]
+            then
+                install -m 0755 ${B}/build/opt/mongo/${i} ${D}${bindir}/${i}
+            else
+                bbnote "${i} does not exist"
+            fi
+        done
+
+        # install config
+        install -d ${D}${sysconfdir}
+        install -m 0644 ${S}/debian/mongod.conf ${D}${sysconfdir}/
+
+        # install systemd service
+        install -d ${D}${systemd_system_unitdir}
+        install -m 0644 ${S}/debian/mongod.service ${D}${systemd_system_unitdir}
+
+        # install mongo data folder
+        install -m 755 -d ${D}${localstatedir}/lib/${BPN}
+        chown ${PN}:${PN} ${D}${localstatedir}/lib/${BPN}
+
+        # Log files
+        install -m 755 -d ${D}${localstatedir}/log/${BPN}
+        chown ${PN}:${PN} ${D}${localstatedir}/log/${BPN}
 }
+
+CONFFILES_${PN} = "${sysconfdir}/mongod.conf"
+
+SYSTEMD_SERVICE_${PN} = "mongod.service"
+
+
diff --git a/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
new file mode 100644
index 0000000..b39a4d6
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1,3 @@
+RDEPENDS_packagegroup-meta-oe-devtools += "\
+    valijson \
+"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.3.bb b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.3.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.3.bb
rename to meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.3.bb
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.21.bb b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.22.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.21.bb
rename to meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.22.bb
index 83f38fc..b50ed9f 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.21.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_3.22.bb
@@ -22,7 +22,7 @@
 PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
 PACKAGECONFIG[numa] = ",--disable-numa,numactl"
 
-SRCREV = "d13596b225baf61425a9ca92b0583fc3fa97765d"
+SRCREV = "477b6753ad068983d49fea0abc91fab82da9bad0"
 SRC_URI = "git://git.kernel.dk/fio.git \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb
rename to meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb
index c7ad91b..d969555 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.7.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.9.bb
@@ -9,13 +9,13 @@
 BUGTRACKER = "https://github.com/esnet/iperf/issues"
 AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f9088fe7ffdccd042f7645f1012d7f70"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b7fb682e9941a49f1214dcd7441410d7"
 
 SRC_URI = "git://github.com/esnet/iperf.git \
            file://0002-Remove-pg-from-profile_CFLAGS.patch \
            "
 
-SRCREV = "dfcea9f6a09ead01089a3c9d20c7032f2c0af2c1"
+SRCREV = "1f8fb13297f3e3e40169ebcd12e171167e394473"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-add-explicit-permissions-to-open-call.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-add-explicit-permissions-to-open-call.patch
deleted file mode 100644
index 9d52b90..0000000
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-add-explicit-permissions-to-open-call.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From d07d2f9601b49bb72cd4b36838f0c238bd1b0fc1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 15 Jan 2020 18:45:09 -0800
-Subject: [PATCH] tests: add explicit permissions to open() call
-
-Fixes
-gethugepagesizes.c:227:35: error: open with O_CREAT in second argument needs 3 arguments
-|         fd = open(fname, O_WRONLY|O_CREAT);
-|                                          ^
-
-Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/libhugetlbfs/anNtDXbQKro]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/gethugepagesizes.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/gethugepagesizes.c b/tests/gethugepagesizes.c
-index 9551b38..5777265 100644
---- a/tests/gethugepagesizes.c
-+++ b/tests/gethugepagesizes.c
-@@ -223,7 +223,7 @@ void setup_fake_data(long sizes[], int n_elem)
- 		FAIL("mkdtemp: %s", strerror(errno));
- 
- 	sprintf(fname, "%s/meminfo-none", fake_meminfo);
--	fd = open(fname, O_WRONLY|O_CREAT);
-+	fd = open(fname, O_WRONLY|O_CREAT, 0600);
- 	if (fd < 0)
- 		FAIL("open: %s", strerror(errno));
- 	if (write(fd, meminfo_base,
-@@ -233,7 +233,7 @@ void setup_fake_data(long sizes[], int n_elem)
- 		FAIL("close: %s", strerror(errno));
- 
- 	sprintf(fname, "%s/meminfo-hugepages", fake_meminfo);
--	fd = open(fname, O_WRONLY|O_CREAT);
-+	fd = open(fname, O_WRONLY|O_CREAT, 0600);
- 	if (fd < 0)
- 		FAIL("open: %s", strerror(errno));
- 	if (write(fd, meminfo_base,
--- 
-2.25.0
-
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index 4768d7b..b349096 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -7,10 +7,10 @@
 RDEPENDS_${PN} += "bash python3-core"
 RDEPENDS_${PN}-tests += "bash python3-core"
 
-PV = "2.22"
+PV = "2.23"
 PE = "1"
 
-SRCREV = "e6499ff92b4a7dcffbd131d1f5d24933e48c3f20"
+SRCREV = "6b126a4d7da9490fa40fe7e1b962edcb939feddc"
 SRC_URI = " \
     git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
     file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
@@ -24,7 +24,6 @@
     file://0004-shm.c-Mark-glibc-specific-changes-so.patch \
     file://0005-Include-dirent.h-for-ino_t.patch \
     file://0006-include-limits.h-for-PATH_MAX.patch \
-    file://0001-tests-add-explicit-permissions-to-open-call.patch \
     file://0001-huge_page_setup_helper-use-python3-interpreter.patch \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
index 7e20b7d..171ac31 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
                     file://COPYING-2;md5=8e9aee2ccc75d61d107e43794a25cdf9"
 
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
 
 DEPENDS += "libtirpc"
 CFLAGS += "-I${STAGING_INCDIR}/tirpc"
@@ -89,3 +89,7 @@
 
 RDEPENDS_${PN} = "perl"
 FILES_${PN} += "${datadir}/lmbench"
+
+ALTERNATIVE_${PN} = "stream"
+ALTERNATIVE_LINK_NAME[stream] = "${bindir}/stream"
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.9.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.8.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.9.bb
index b1e6fea..25500e6 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.9.bb
@@ -6,7 +6,7 @@
 DEPENDS = "ell"
 
 SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git"
-SRCREV = "a01754f56aacdc641c819f983c3c0ad374be77b2"
+SRCREV = "aa3dc1b95348dea177e9d8c2c3063b29e20fe2e9"
 S = "${WORKDIR}/git"
 
 inherit autotools manpages pkgconfig python3native systemd
@@ -41,7 +41,7 @@
 
 FILES_${PN} += " \
     ${datadir}/dbus-1 \
-    ${nonarch_base_libdir}/modules-load.d \
+    ${nonarch_libdir}/modules-load.d \
     ${systemd_unitdir}/network \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.4.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.0.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.4.bb
index 3a1b70b..f778ffa 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.4.bb
@@ -14,8 +14,7 @@
 
 SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
 
-SRC_URI[md5sum] = "8da95a97e893311878f8ce12dcf8fad0"
-SRC_URI[sha256sum] = "7f0429e0ae58792e21512d09ca2412537840ea42696762795af1284a65fd6e40"
+SRC_URI[sha256sum] = "c0adcb84ba452e3e13edeb3f94f7b003ea927b354bc187629e05efb333ce270b"
 
 PACKAGECONFIG ??= "udev mbim"
 PACKAGECONFIG[udev] = ",--without-udev,libgudev"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch
new file mode 100644
index 0000000..8760886
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch
@@ -0,0 +1,26 @@
+From 8a4cad5e2f2cbb6a34bdc6e877fe499502b8c4c8 Mon Sep 17 00:00:00 2001
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Fri, 23 Dec 2016 18:12:29 +0100
+Subject: [PATCH] linuxptp: Use cross cpp in incdefs
+
+Use cross cpp incdefs.sh shell script since we are doing cross compiling
+we need to ensure we use correct setttings from toolchain
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+
+ makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/incdefs.sh
++++ b/incdefs.sh
+@@ -27,7 +27,7 @@ user_flags()
+ 	printf " -D_GNU_SOURCE"
+ 
+ 	# Get list of directories searched for header files.
+-	dirs=$(echo "" | ${CROSS_COMPILE}cpp -Wp,-v 2>&1 >/dev/null | grep ^" /")
++	dirs=$(${CPP} -Wp,-v -xc /dev/null 2>&1 >/dev/null | grep ^" /")
+ 
+ 	# Look for clock_adjtime().
+ 	for d in $dirs; do
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch
deleted file mode 100644
index 02dbb23..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 8a4cad5e2f2cbb6a34bdc6e877fe499502b8c4c8 Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Fri, 23 Dec 2016 18:12:29 +0100
-Subject: [PATCH] linuxptp: no incdefs using host headers
-
-Avoid using host headers via incdefs.sh shell script.
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
----
-
- makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/makefile b/makefile
-index 8cdbd15..85174b8 100644
---- a/makefile
-+++ b/makefile
-@@ -33,7 +33,7 @@ OBJECTS	= $(OBJ) hwstamp_ctl.o phc2sys.o phc_ctl.o pmc.o pmc_common.o \
- SRC	= $(OBJECTS:.o=.c)
- DEPEND	= $(OBJECTS:.o=.d)
- srcdir	:= $(dir $(lastword $(MAKEFILE_LIST)))
--incdefs := $(shell $(srcdir)/incdefs.sh)
-+#incdefs := $(shell $(srcdir)/incdefs.sh)
- version := $(shell $(srcdir)/version.sh $(srcdir))
- VPATH	= $(srcdir)
- 
--- 
-2.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb
index 69dee1a..1472a67 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb
@@ -4,14 +4,15 @@
 
 SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
            file://build-Allow-CC-and-prefix-to-be-overriden.patch \
-           file://no-incdefs-using-host-headers.patch \
+           file://Use-cross-cpp-in-incdefs.patch \
            "
 
 SRC_URI[md5sum] = "1318805702eb6d59f9f247e1dd5ce12a"
 SRC_URI[sha256sum] = "d74ceca722c75bfff53c633425f926dd48eb04f4a089451b855155c016d15785"
 
-EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
-    EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'"
+EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} EXTRA_CFLAGS='${CFLAGS}'"
+
+export KBUILD_OUTPUT="${RECIPE_SYSROOT}"
 
 do_install () {
     install -d ${D}/${bindir}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.12.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.14.2.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.12.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.14.2.bb
index b0ab46f..d5fe9bf 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.12.12.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.14.2.bb
@@ -12,7 +12,7 @@
 DEPENDS = "glib-2.0 libgudev intltool-native libxslt-native"
 
 SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz"
-SRC_URI[sha256sum] = "a4fc4b33c0e8ae9372885f86fa033f3c1a89a76cd59a3458670eff1824222a3d"
+SRC_URI[sha256sum] = "5fb5553aecd6eb9d6d8ecd130a24f3461e5f93c5f91a0e4ae0508b5228e8b0be"
 S = "${WORKDIR}/ModemManager-${PV}"
 
 PACKAGECONFIG ??= "mbim qmi \
@@ -30,7 +30,6 @@
 EXTRA_OECONF = " \
     --with-udev-base-dir=${nonarch_base_libdir}/udev \
 "
-EXTRA_OECONF_append_toolchain-clang = " --enable-more-warnings=no"
 
 FILES_${PN} += " \
     ${datadir}/icons \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch
deleted file mode 100644
index 12f9e7a..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/files/0001-Fix-bug-of-free-with-musl.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 96233a8382b9520293a48b08dc3b204a21205800 Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@cn.fujitsu.com>
-Date: Fri, 24 Apr 2020 00:53:19 +0900
-Subject: [PATCH] Fix bug of free() with musl
-
-This fixes build error with musl C library:
-/ubinux-dev/ubinux001/contribution/build/tmp/work/armv7vet2hf-neon-poky-linux-musleabi/paho-mqtt-c/1.3.2-r0/git/src/Heap.h:55:24:
-error: expected declaration specifiers or '...' before string constant
-   55 | #define free(x) myfree(__FILE__, __LINE__, x)
-      |                        ^~~~~~~~
-/ubinux-dev/ubinux001/contribution/build/tmp/work/armv7vet2hf-neon-poky-linux-musleabi/paho-mqtt-c/1.3.2-r0/git/src/Heap.h:55:34:
-error: expected declaration specifiers or '...' before numeric constant
-   55 | #define free(x) myfree(__FILE__, __LINE__, x)
-      |                                  ^~~~~~~~
-
-Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
----
- src/MQTTReasonCodes.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/MQTTReasonCodes.c b/src/MQTTReasonCodes.c
-index 416eab5..479dbac 100644
---- a/src/MQTTReasonCodes.c
-+++ b/src/MQTTReasonCodes.c
-@@ -16,10 +16,10 @@
- 
- #include "MQTTReasonCodes.h"
- 
--#include "Heap.h"
- #include "StackTrace.h"
- 
- #include <memory.h>
-+#include "Heap.h"
- 
- #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
- 
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.5.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.4.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.5.bb
index 2d4e39b..673a247 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.4.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.5.bb
@@ -11,10 +11,9 @@
     file://about.html;md5=e5662cbb5f8fd5c9faac526e4077898e \
 "
 
-SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http \
-           file://0001-Fix-bug-of-free-with-musl.patch"
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http"
 
-SRCREV = "2d3d0941a9233889d4d5cc37f5182bbefea261ad"
+SRCREV = "153dfd3a4a1d510697c5d55e169fa158db16e04a"
 
 DEPENDS = "openssl"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
index b985d39..473ceab 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
@@ -9,7 +9,7 @@
 DEPENDS = "wvstreams"
 RDEPENDS_${PN} = "ppp"
 
-SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.bz2 \
+SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BP}.tar.bz2 \
            file://typo_pon.wvdial.1.patch \
            file://musl-support.patch \
           "
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
index 20becaf..57163ce 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
@@ -7,7 +7,7 @@
 DEPENDS = "zlib openssl (>= 0.9.8) dbus readline"
 DEPENDS_append_libc-musl = " argp-standalone libexecinfo"
 
-SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
+SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BP}.tar.gz \
            file://04_signed_request.diff \
            file://05_gcc.diff \
            file://06_gcc-4.7.diff \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
index eb3dee4..3b0300c 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
@@ -1,6 +1,7 @@
+From 24ad50286a87833329213dc0b0e68c21aeeee95f Mon Sep 17 00:00:00 2001
 From: Niko Mauno <niko.mauno@vaisala.com>
-Date: Wed Apr 22 09:00:00 2020 +0300
-Subject: CMakeLists.txt: Avoid host-specific path to libsodium
+Date: Wed, 22 Apr 2020 09:00:00 +0300
+Subject: [PATCH] CMakeLists.txt: Avoid host-specific path to libsodium
 
 Avoid propagating full build host specific path to generated
 ZeroMQTargets.cmake when building with libsodium, which changes the
@@ -17,10 +18,16 @@
 
 Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
 
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e92141d..d0775c1 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -1210,7 +1210,7 @@
-   target_link_libraries(libzmq ${OPTIONAL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+@@ -1428,7 +1428,7 @@ if(BUILD_SHARED)
+   endif()
  
    if(SODIUM_FOUND)
 -    target_link_libraries(libzmq ${SODIUM_LIBRARIES})
@@ -28,8 +35,8 @@
      # On Solaris, libsodium depends on libssp
      if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
        target_link_libraries(libzmq ssp)
-@@ -1240,7 +1240,7 @@
-   target_link_libraries(libzmq-static ${OPTIONAL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+@@ -1473,7 +1473,7 @@ if(BUILD_STATIC)
+   endif()
  
    if(SODIUM_FOUND)
 -    target_link_libraries(libzmq-static ${SODIUM_LIBRARIES})
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.3.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.3.bb
index 02a4c04..a105004 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.3.bb
@@ -10,8 +10,8 @@
     file://0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch \
     file://run-ptest \
 "
-SRC_URI[md5sum] = "2047e917c2cc93505e2579bcba67a573"
-SRC_URI[sha256sum] = "ebd7b5c830d6428956b67a0454a7f8cbed1de74b3b01e5c33c5378e22740f763"
+SRC_URI[md5sum] = "78acc277d95e10812d71b2b3c3c3c9a9"
+SRC_URI[sha256sum] = "9d9285db37ae942ed0780c016da87060497877af45094ff9e1a1ca736e3875a2"
 
 UPSTREAM_CHECK_URI = "https://github.com/${BPN}/libzmq/releases"
 
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 0812da1..46cc935 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
@@ -4,7 +4,7 @@
 inherit packagegroup
 
 PROVIDES = "${PACKAGES}"
-PACKAGES = ' \
+PACKAGES = "\
     packagegroup-meta-oe \
     packagegroup-meta-oe-benchmarks \
     packagegroup-meta-oe-connectivity \
@@ -17,27 +17,32 @@
     packagegroup-meta-oe-kernel \
     packagegroup-meta-oe-multimedia \
     packagegroup-meta-oe-navigation \
+    packagegroup-meta-oe-printing \
+    packagegroup-meta-oe-shells \
     packagegroup-meta-oe-security \
     packagegroup-meta-oe-support \
     packagegroup-meta-oe-test \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-gnome", "", d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-graphics", "", d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-oe-ptest-packages", "", d)} \
-'
+"
+#PACKAGES += "packagegroup-meta-oe-fortran-packages"
 
 RDEPENDS_packagegroup-meta-oe = "\
     packagegroup-meta-oe-benchmarks \
+    packagegroup-meta-oe-bsp \
     packagegroup-meta-oe-connectivity \
     packagegroup-meta-oe-core \
     packagegroup-meta-oe-crypto \
-    packagegroup-meta-oe-bsp \
     packagegroup-meta-oe-dbs \
     packagegroup-meta-oe-devtools \
     packagegroup-meta-oe-extended \
     packagegroup-meta-oe-kernel \
     packagegroup-meta-oe-multimedia \
     packagegroup-meta-oe-navigation \
+    packagegroup-meta-oe-printing \
     packagegroup-meta-oe-security \
+    packagegroup-meta-oe-shells \
     packagegroup-meta-oe-support \
     packagegroup-meta-oe-test \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-gnome", "", d)} \
@@ -46,12 +51,31 @@
 "
 
 RDEPENDS_packagegroup-meta-oe-benchmarks = "\
-    dhrystone iperf2 linpack phoronix-test-suite \
-    tiobench bonnie++ fio iperf2 iperf3 lmbench s-suite whetstone \
-    libc-bench memtester sysbench dbench iozone3 libhugetlbfs \
-    nbench-byte tinymembench \
+    bonnie++ \
+    dbench \
+    dhrystone \
+    fio \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11 wayland opengl", "glmark2", "", d)} \
+    iozone3 \
+    iperf2 \
+    iperf3 \
+    libc-bench \
+    libhugetlbfs \
+    linpack \
+    lmbench \
+    memtester \
+    nbench-byte \
+    phoronix-test-suite \
+    s-suite \
+    stressapptest \
+    sysbench \
+    tinymembench \
+    tiobench \
+    whetstone \
 "
+RDEPENDS_packagegroup-meta-oe-benchmarks_append_armv7a = " cpuburn-arm"
+RDEPENDS_packagegroup-meta-oe-benchmarks_append_armv7ve = " cpuburn-arm"
+RDEPENDS_packagegroup-meta-oe-benchmarks_append_aarch64 = " cpuburn-arm"
 
 RDEPENDS_packagegroup-meta-oe-benchmarks_remove_mipsarch = "libhugetlbfs"
 RDEPENDS_packagegroup-meta-oe-benchmarks_remove_mips64 = "tinymembench"
@@ -59,39 +83,25 @@
 RDEPENDS_packagegroup-meta-oe-benchmarks_remove_riscv64 = "libhugetlbfs"
 RDEPENDS_packagegroup-meta-oe-benchmarks_remove_riscv32 = "libhugetlbfs"
 
-RDEPENDS_packagegroup-meta-oe-connectivity ="\
-    gammu hostapd irssi krb5 libev libimobiledevice \
-    libmbim libmtp libndp libqmi libtorrent \
-    libuv libwebsockets linuxptp loudmouth \
-    modemmanager mosh  \
-    paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \
-    ser2net smstools3 telepathy-glib thrift \
-    usbmuxd zabbix zeromq \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \
-    libmikmod \
-    obexftp openobex libnet \
-    ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "telepathy-idle", "", d)} \
-    "
-RDEPENDS_packagegroup-meta-oe-connectivity_append_libc-glibc = " wvstreams wvdial"
-
-# dracut needs dracut
-RDEPENDS_packagegroup-meta-oe-core ="\
-    dbus-daemon-proxy libdbus-c++ \
-    ell glibmm libsigc++-2.0 libxml++ distro-feed-configs \
-    mm-common opencl-headers opencl-icd-loader \
-    proxy-libintl usleep \
-    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "dbus-broker ndctl", "", d)} \
-    "
-
-RDEPENDS_packagegroup-meta-oe-crypto ="\
-    botan cryptsetup libkcapi libmcrypt \
-    libsodium pkcs11-helper \
-    "
 RDEPENDS_packagegroup-meta-oe-bsp ="\
-    acpitool cpufrequtils edac-utils efibootmgr \
-    efivar flashrom lmsensors lmsensors-config \
-    lsscsi nvme-cli pcmciautils pointercal \
-    "
+    acpitool \
+    cpufrequtils \
+    edac-utils \
+    flashrom \
+    irda-utils \
+    lmsensors-config-cgi \
+    lmsensors-config-fancontrol \
+    lmsensors-config-sensord \
+    lmsensors \
+    lsscsi \
+    nvme-cli \
+    pcmciautils \
+    pointercal \
+"
+RDEPENDS_packagegroup-meta-oe-bsp_append_x86 = " ledmon"
+RDEPENDS_packagegroup-meta-oe-bsp_append_x86-64 = " ledmon"
+
+RDEPENDS_packagegroup-meta-oe-bsp_remove_libc-musl = "ledmon"
 RDEPENDS_packagegroup-meta-oe-bsp_remove_mipsarch = "efivar efibootmgr"
 RDEPENDS_packagegroup-meta-oe-bsp_remove_powerpc = "efivar efibootmgr"
 RDEPENDS_packagegroup-meta-oe-bsp_remove_powerpc64 = "efivar efibootmgr"
@@ -99,194 +109,794 @@
 RDEPENDS_packagegroup-meta-oe-bsp_remove_riscv64 = "efivar efibootmgr"
 RDEPENDS_packagegroup-meta-oe-bsp_remove_riscv32 = "efivar efibootmgr"
 
+RDEPENDS_packagegroup-meta-oe-connectivity ="\
+    gammu \
+    gattlib \
+    gensio \
+    hostapd \
+    ifplugd \
+    irssi \
+    iwd \
+    krb5 \
+    libev \
+    libimobiledevice \
+    libmbim \
+    libmtp \
+    libndp \
+    libnet \
+    libqmi \
+    libtorrent \
+    libuv \
+    libwebsockets \
+    linuxptp \
+    loudmouth \
+    modemmanager \
+    mosh \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \
+    openobex \
+    obexftp \
+    packagegroup-tools-bluetooth \
+    paho-mqtt-c \
+    phonet-utils \
+    rabbitmq-c \
+    rfkill \
+    rtorrent \
+    ser2net \
+    smstools3 \
+    telepathy-glib \
+    ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "telepathy-idle", "", d)} \
+    thrift \
+    usbmuxd \
+    wifi-test-suite \
+    zabbix \
+    czmq \
+    zeromq \
+"
+
+RDEPENDS_packagegroup-meta-oe-connectivity_append_libc-glibc = " wvstreams wvdial"
+
+# dracut needs dracut
+RDEPENDS_packagegroup-meta-oe-core = "\
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "dbus-broker", "", d)} \
+    dbus-daemon-proxy \
+    libdbus-c++ \
+    emlog \
+    kernel-module-emlog \
+    glibmm \
+    libnfc \
+    libsigc++-2.0 \
+    libsigc++-3 \
+    libxml++ \
+    mdbus2 \
+    distro-feed-configs \
+    mm-common \
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "ndctl", "", d)} \
+    opencl-icd-loader \
+    proxy-libintl \
+    safec \
+    sdbus-c++-tools \
+    sdbus-c++ \
+    toybox \
+    usleep \
+"
+RDEPENDS_packagegroup-meta-oe-core_append_libc-glibc = " glfw"
+RDEPENDS_packagegroup-meta-oe-core_remove_riscv64 = "safec"
+RDEPENDS_packagegroup-meta-oe-core_remove_riscv32 = "safec"
+
+RDEPENDS_packagegroup-meta-oe-crypto ="\
+    botan \
+    cryptsetup \
+    libkcapi \
+    libmcrypt \
+    libsodium \
+    pkcs11-helper \
+"
+
 RDEPENDS_packagegroup-meta-oe-dbs ="\
-    leveldb libdbi mariadb mariadb-native \
-    postgresql psqlodbc rocksdb soci \
-    sqlite \
+    leveldb \
+    libdbi \
+    mariadb \
     ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "mysql-python", "", d)} \
-    "
+    postgresql \
+    psqlodbc \
+    rocksdb \
+    soci \
+    sqlite \
+"
 
 RDEPENDS_packagegroup-meta-oe-devtools ="\
-    android-tools android-tools-conf bootchart breakpad \
-    capnproto cgdb cscope ctags \
-    debootstrap dmalloc flatbuffers \
-    giflib grpc icon-slicer iptraf-ng jq jsoncpp jsonrpc json-spirit \
-    kconfig-frontends lemon libedit libgee libsombok3 \
-    libubox log4cplus lshw ltrace lua mcpp memstat mercurial \
-    mpich msgpack-c nlohmann-json openocd pax-utils \
-    ipc-run libdbd-mysql-perl libdbi-perl libio-pty-perl php \
-    protobuf protobuf-c \
-    rapidjson serialcheck sip3 tclap uftrace uw-imap valijson \
-    xmlrpc-c yajl yasm \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geany geany-plugins glade tk", "", d)} \
+    abseil-cpp \
+    breakpad \
+    bootchart \
+    android-tools-conf \
+    android-tools \
+    concurrencykit \
+    cgdb \
+    ctags \
+    debootstrap \
+    cjson \
+    cloc \
+    icon-slicer \
+    cscope \
+    dmalloc \
+    ${@bb.utils.contains("PACKAGE_CLASSES", "package_rpm", "dnf-plugin-tui", "", d)} \
+    doxygen \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geany-plugins geany", "", d)} \
+    lemon \
+    flatbuffers \
+    libubox \
+    ltrace \
+    lua \
+    luajit \
+    mcpp \
+    memstat \
+    giflib \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "glade", "", d)} \
+    grpc \
+    guider \
+    php \
+    iptraf-ng \
+    jq \
+    json-spirit \
+    serialcheck \
+    tclap \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "tk", "", d)} \
+    uw-imap \
+    jsoncpp \
+    jsonrpc \
+    yajl \
+    yajl \
+    kconfig-frontends \
+    ldns \
+    libgee \
+    libsombok3 \
+    lshw \
+    luaposix \
+    capnproto-compiler \
+    mpich \
+    msgpack-c \
+    mercurial \
     ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "nodejs", "", d)} \
-    "
+    openocd \
+    pax-utils \
+    ipc-run \
+    libdbd-mysql-perl \
+    libdbi-perl \
+    libdev-checklib-perl \
+    libio-pty-perl \
+    libjson-perl \
+    libperlio-gzip-perl \
+    ply \
+    protobuf-c \
+    protobuf \
+    pugixml \
+    python3-distutils-extra \
+    rapidjson \
+    sip3 \
+    uftrace \
+    libxerces-c \
+    xerces-c-samples \
+    xmlrpc-c \
+    yasm \
+    json-schema-validator \    
+"
+RDEPENDS_packagegroup-meta-oe-devtools_append_x86 = " cpuid msr-tools pmtools"
+RDEPENDS_packagegroup-meta-oe-devtools_append_x86-64 = " cpuid msr-tools pcimem pmtools"
+RDEPENDS_packagegroup-meta-oe-devtools_append_arm = " pcimem"
+RDEPENDS_packagegroup-meta-oe-devtools_append_aarch64 = " pcimem"
 
+RDEPENDS_packagegroup-meta-oe-devtools_remove_arm = "concurrencykit"
 RDEPENDS_packagegroup-meta-oe-devtools_remove_armv5 = "uftrace nodejs"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_mipsarch = "uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_mips64 = "nodejs"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_mips64el = "nodejs"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc = "android-tools breakpad uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc64 = "android-tools uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc64le = "android-tools uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv64 = "breakpad ltrace nodejs uftrace lshw"
-RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv32 = "breakpad ltrace nodejs uftrace lshw"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_mipsarch = "concurrencykit lshw ply uftrace"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_mips64 = "luajit nodejs"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_mips64el = "luajit nodejs"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc = "android-tools breakpad lshw luajit uftrace"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc64 = "android-tools lshw luajit uftrace"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_powerpc64le = "android-tools lshw luajit uftrace"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv64 = "breakpad concurrencykit lshw ltrace luajit nodejs ply uftrace"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_riscv32 = "breakpad concurrencykit lshw ltrace luajit nodejs ply uftrace"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_aarch64 = "${@bb.utils.contains("TUNE_FEATURES", "crypto", "", "abseil-cpp", d)} concurrencykit"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_x86-64 = "${@bb.utils.contains("TUNE_FEATURES", "corei7", "", "abseil-cpp", d)}"
+RDEPENDS_packagegroup-meta-oe-devtools_remove_x86 = "ply"
 
 RDEPENDS_packagegroup-meta-oe-extended ="\
-    byacc cfengine cfengine-masterfiles cmpi-bindings \
-    ddrescue dialog dumb-init enscript fluentbit \
-    haveged hexedit hiredis hplip hwloc indent iotop isomd5sum \
-    jansson konkretcmpi libblockdev libcec libconfig \
-    libdivecomputer libplist libusbmuxd \
-    liblockfile liblogging liblognorm libmodbus libmodbus \
-    libpwquality libqb libuio \
-    lockfile-progs logwatch lprng mailx md5deep \
-    mraa nana nicstat \
-    p7zip p8platform libfile-fnmatch-perl \
-    rarpd redis rrdtool libfastjson librelp rsyslog sanlock \
-    sblim-cmpi-devel sblim-sfc-common sblim-sfcc \
-    scsirastools sgpio smartmontools snappy \
-    can-utils libsocketcan tipcutils tiptop \
-    tmux uml-utilities upm vlock volume-key wipe zlog zram \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11 wayland opengl", "boinc-client", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", " libgxim gnuplot libwmf", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "bluez", "collectd", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-ccreds pam-plugin-ldapdb", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-ssh-agent-auth openwsman sblim-sfcb ", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit polkit-group-rule-datetime ", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit-group-rule-network ", "", d)} \
-    ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "openlmi-tools", "", d)} \
-    "
-RDEPENDS_packagegroup-meta-oe-extended_remove_mipsarch = "upm mraa tiptop"
-RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc = "upm mraa"
-RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc64 = "upm mraa"
+     brotli \
+     byacc \
+     cmpi-bindings \
+     collectd \
+     cfengine-masterfiles \
+     cfengine \
+     ddrescue \
+     dialog \
+     enscript \
+     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gnuplot", "", d)} \
+     dlt-daemon \
+     docopt.cpp \
+     iotop \
+     dumb-init \
+     konkretcmpi \
+     figlet \
+     libcec \
+     libdivecomputer \
+     fluentbit \
+     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "libgxim", "", d)} \
+     liblognorm \
+     libmodbus \
+     haveged \
+     hexedit \
+     hiredis \
+     hplip \
+     hwloc \
+     libuio \
+     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "libwmf", "", d)} \
+     lprng \
+     icewm \
+     md5deep \
+     indent \
+     jansson \
+     nana \
+     nicstat \
+     ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "openlmi-tools", "", d)} \
+     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "openwsman", "", d)} \
+     p7zip \
+     isomd5sum \
+     jpnevulator \
+     ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit-group-rule-datetime polkit-group-rule-network polkit", "", d)} \
+     rarpd \
+     redis \
+     libfastjson \
+     librelp \
+     sblim-cmpi-devel \
+     sblim-sfc-common \
+     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "sblim-sfcb ", "", d)} \
+     sblim-sfcc \
+     libblockdev \
+     sgpio \
+     smartmontools \
+     can-utils \
+     canutils \
+     libsocketcan \
+     libconfig \
+     uml-utilities \
+     libidn \
+     libqb \
+     wipe \
+     libzip \
+     zram \
+     libplist \
+     libusbmuxd \
+     liblockfile \
+     liblogging \
+     libnss-nisplus \
+     libpwquality \
+     ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "libreport", "", d)} \
+     libserialport \
+     libstatgrab \
+     lockfile-progs \
+     logwatch \
+     mailx \
+     mraa \
+     ostree \
+     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-ccreds pam-plugin-ldapdb pam-ssh-agent-auth", "", d)} \
+     pegtl \
+     libfile-fnmatch-perl \
+     rrdtool \
+     sanlock \
+     scsirastools \
+     sedutil \
+     libsigrok \
+     libsigrokdecode \
+     sigrok-cli \
+     snappy \
+     tipcutils \
+     tiptop \
+     tmux \
+     triggerhappy \
+     upm \
+     vlock \
+     volume-key \
+     wxwidgets \
+     zlog \
+     zstd \
+     redis-plus-plus \
+"
+RDEPENDS_packagegroup-meta-oe-extended_append_libc-musl = " libexecinfo"
+RDEPENDS_packagegroup-meta-oe-extended_append_x86-64 = " pmdk libx86-1"
+RDEPENDS_packagegroup-meta-oe-extended_append_x86 = " libx86-1"
+
+RDEPENDS_packagegroup-meta-oe-extended_remove_libc-musl = "libnss-nisplus sysdig"
+RDEPENDS_packagegroup-meta-oe-extended_remove_mipsarch = "upm mraa minifi-cpp tiptop"
+RDEPENDS_packagegroup-meta-oe-extended_remove_mips = "sysdig"
+RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc = "upm mraa minifi-cpp"
+RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc64 = "upm mraa minifi-cpp"
 RDEPENDS_packagegroup-meta-oe-extended_remove_powerpc64le = "upm mraa"
-RDEPENDS_packagegroup-meta-oe-extended_remove_riscv64 = "upm mraa tiptop"
-RDEPENDS_packagegroup-meta-oe-extended_remove_riscv32 = "upm mraa tiptop"
+RDEPENDS_packagegroup-meta-oe-extended_remove_riscv64 = "upm mraa sysdig tiptop"
+RDEPENDS_packagegroup-meta-oe-extended_remove_riscv32 = "upm mraa sysdig tiptop"
 
 RDEPENDS_packagegroup-meta-oe-gnome ="\
-    atkmm gnome-common gnome-doc-utils-stub gtkmm \
-    gtkmm3 pyxdg vte9 \
-    "
+    atkmm \
+    gcab \
+    gnome-common \
+    gmime \
+    libjcat \
+    gtk+ \
+    gtkmm3 \
+    gtkmm \
+    libpeas \
+    pyxdg \
+    vte9 \
+    gnome-theme-adwaita \
+    libxmlb \
+"
 
 RDEPENDS_packagegroup-meta-oe-graphics ="\
-    cairomm dietsplash directfb directfb-examples \
-    ${@bb.utils.contains("PACKAGE_CLASSES", "package_rpm", "dnfdragora dnf-plugin-tui", "", d)} \
-    fbgrab fbida fontforge fvwm glm gphoto2 libgphoto2 \
-    gtkperf jasper leptonica libmng libsdl2-image libsdl2-mixer libsdl2-net \
-    libsdl-gfx libsdl-image libsdl-mixer libsdl-net libsdl-ttf \
-    libvncserver libyui libyui-ncurses lxdm numlockx openbox openjpeg \
-    packagegroup-fonts-truetype pangomm qrencode takao-fonts terminus-font \
-    tesseract tesseract-lang tigervnc tslib source-han-sans-cn-fonts \
-    source-han-sans-jp-fonts source-han-sans-kr-fonts source-han-sans-tw-fonts ttf-abyssinica \
-    libvdpau x11vnc xcursorgen xdotool \
-    bdftopcf iceauth sessreg setxkbmap twm xclock xfontsel xgamma xkbevd xkbprint xkbutils \
-    xlsatoms xlsclients xlsfonts xmag xmessage xrdb xrefresh xsetmode xsetroot xstdcmap \
-    xterm xwd xwud xbitmaps xorg-sgml-doctools \
-    font-adobe-100dpi font-adobe-utopia-100dpi \
-    font-bh-100dpi font-bh-lucidatypewriter-100dpi font-bitstream-100dpi font-cursor-misc \
-    font-misc-misc xorg-fonts-100dpi liblbxutil libxaw libxkbui libxpresent xserver-common \
-    ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "freeglut libsdl2-ttf", "", d)} \
-    "
+    cairomm \
+    directfb-examples \
+    directfb \
+    fbgrab \
+    dietsplash \
+    ${@bb.utils.contains("PACKAGE_CLASSES", "package_rpm", "dnfdragora", "", d)} \
+    fontforge \
+    fbida \
+    ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "freeglut", "", d)} \
+    ftgl \
+    fvwm \
+    gtkperf \
+    gphoto2 \
+    libgphoto2 \
+    graphviz \
+    gtkwave \
+    jasper \
+    libforms \
+    lxdm \
+    numlockx \
+    openbox \
+    packagegroup-fonts-truetype \
+    qrencode \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "st", "", d)} \
+    takao-fonts \
+    leptonica \
+    libvncserver \
+    libmng \
+    libsdl-gfx \
+    libsdl-image \
+    libsdl-mixer \
+    libsdl-net \
+    libsdl-ttf \
+    libsdl2-image \
+    libsdl2-mixer \
+    libsdl2-net \
+    ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "libsdl2-ttf", "", d)} \
+    libsdl \
+    ttf-arphic-uming \
+    ttf-droid-sans ttf-droid-sans-mono ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif \
+    ttf-abyssinica \
+    source-han-sans-cn-fonts \
+    source-han-sans-jp-fonts \
+    source-han-sans-kr-fonts \
+    source-han-sans-tw-fonts \
+    source-code-pro-fonts \
+    ttf-dejavu-sans \
+    ttf-dejavu-sans-condensed \
+    ttf-dejavu-sans-mono \
+    ttf-dejavu-serif \
+    ttf-dejavu-serif-condensed \
+    ttf-dejavu-mathtexgyre \
+    ttf-dejavu-common \
+    ttf-gentium \
+    ttf-hunky-sans \
+    ttf-hunky-serif \
+    ttf-lohit \
+    ttf-inconsolata \
+    ttf-liberation-sans-narrow \
+    ttf-liberation-mono \
+    ttf-liberation-sans \
+    ttf-liberation-serif \
+    ttf-lklug \
+    ttf-noto-emoji-color \
+    ttf-noto-emoji-regular \
+    ttf-sazanami-gothic \
+    ttf-sazanami-mincho \
+    ttf-tlwg \
+    ttf-roboto \
+    ttf-wqy-zenhei \
+    ttf-pt-sans \
+    ttf-vlgothic \
+    ttf-ubuntu-mono \
+    ttf-ubuntu-sans \
+    libyui-ncurses \
+    libyui \
+    x11vnc \
+    terminus-font-consolefonts \
+    terminus-font-pcf \
+    xdotool \
+    xkbevd \
+    bdftopcf \
+    iceauth \
+    sessreg \
+    xgamma \
+    setxkbmap \
+    xkbutils \
+    twm \
+    xclock \
+    xfontsel \
+    xkbprint \
+    xsetmode \
+    xlsatoms \
+    xlsclients \
+    xlsfonts \
+    xmag \
+    xmessage \
+    xrdb \
+    xrefresh \
+    xsetroot \
+    xstdcmap \
+    xterm \
+    xwd \
+    xwud \
+    xorg-sgml-doctools \
+    xf86-input-tslib \
+    xf86-input-void \
+    xf86-video-armsoc \
+    xf86-video-ati \
+    font-adobe-100dpi \
+    font-adobe-utopia-100dpi \
+    font-bh-100dpi \
+    font-bh-lucidatypewriter-100dpi \
+    font-bitstream-100dpi \
+    font-cursor-misc \
+    font-misc-misc \
+    xorg-fonts-100dpi \
+    liblbxutil \
+    libxaw6 \
+    libxkbui \
+    libxpresent \
+    xcb-util-cursor \
+    xserver-common \
+    openjpeg \
+    pangomm \
+    spirv-shader-generator \
+    spirv-tools \
+    stalonetray \
+    surf \
+    tesseract-lang \
+    tesseract \
+    tigervnc \
+    tslib \
+    unclutter-xfixes \
+    libvdpau \
+    xcursorgen \
+    xscreensaver \
+    yad \
+    parallel-deqp-runner \
+    ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "opengl-es-cts", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "opengl vulkan", "vulkan-cts", "", d)} \
+"
+RDEPENDS_packagegroup-meta-oe-graphics_append_x86 = " renderdoc xf86-video-nouveau xf86-video-mga"
+RDEPENDS_packagegroup-meta-oe-graphics_append_x86-64 = " renderdoc xf86-video-nouveau xf86-video-mga"
+RDEPENDS_packagegroup-meta-oe-graphics_append_arm = " renderdoc"
+RDEPENDS_packagegroup-meta-oe-graphics_append_aarch64 = " renderdoc"
 
-
+RDEPENDS_packagegroup-meta-oe-graphics_remove_libc-musl = "renderdoc"
 
 RDEPENDS_packagegroup-meta-oe-kernel ="\
-    agent-proxy broadcom-bt-firmware cpupower \
-    crash ipmitool minicoredumper oprofile \
-    "
-RDEPENDS_packagegroup-meta-oe-kernel_append_x86 = " pm-graph "
-RDEPENDS_packagegroup-meta-oe-kernel_append_x86-64 = " pm-graph "
+    agent-proxy \
+    crash \
+    cpupower \
+    ipmitool \
+    broadcom-bt-firmware \
+    kernel-selftest \
+    minicoredumper \
+    oprofile \
+    spidev-test \
+"
+RDEPENDS_packagegroup-meta-oe-kernel_append_x86 = " intel-speed-select ipmiutil pm-graph turbostat"
+RDEPENDS_packagegroup-meta-oe-kernel_append_x86-64 = " intel-speed-select ipmiutil kpatch pm-graph turbostat"
+RDEPENDS_packagegroup-meta-oe-kernel_append_poerpc64 = " libpfm4"
 
-RDEPENDS_packagegroup-meta-oe-kernel_remove_libc-musl = "crash minicoredumper"
+# Kernel-selftest does not build with 5.8 and its exluded from build too so until its fixed remove it
+RDEPENDS_packagegroup-meta-oe-kernel_remove = "kernel-selftest"
+RDEPENDS_packagegroup-meta-oe-kernel_remove_libc-musl = "crash intel-speed-select kernel-selftest minicoredumper turbostat"
 
+RDEPENDS_packagegroup-meta-oe-kernel_remove_mipsarch = "makedumpfile"
 RDEPENDS_packagegroup-meta-oe-kernel_remove_mips64 = "crash"
 RDEPENDS_packagegroup-meta-oe-kernel_remove_mips64el = "crash"
 
-RDEPENDS_packagegroup-meta-oe-kernel_remove_riscv64 = "crash oprofile"
-RDEPENDS_packagegroup-meta-oe-kernel_remove_riscv32 = "crash oprofile"
+RDEPENDS_packagegroup-meta-oe-kernel_remove_riscv64 = "crash makedumpfile oprofile"
+RDEPENDS_packagegroup-meta-oe-kernel_remove_riscv32 = "crash makedumpfile oprofile"
 
 RDEPENDS_packagegroup-meta-oe-multimedia ="\
-    alsa-oss audiofile cdrkit id3lib \
-    a2jmidid jack libass libburn libcdio libcdio-paranoia \
-    libdvdread libmms libmodplug libopus live555 \
-    opus-tools \
-    sound-theme-freedesktop v4l-utils yavta wavpack libvpx \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xpext pavucontrol xsp", "", d)} \
+    alsa-oss \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "faad2", "", d)} \
+    cdrkit \
+    id3lib \
+    audiofile \
+    a2jmidid \
+    jack-server \
+    jack-utils \
+    libass \
+    libburn \
+    libcdio-paranoia \
+    libcdio \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad", "", d)} \
+    libmms \
+    libdvdread \
+    libopus \
+    live555-examples \
+    live555-mediaserver \
     libmikmod \
-    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2 mpv", "", d)} \
-    "
+    opus-tools \
+    libmodplug \
+    sound-theme-freedesktop \
+    yavta \
+    v4l-utils \
+    wavpack \
+    libvpx \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xsp", "", d)} \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "mpv", "", d)} \
+    pipewire \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "pavucontrol", "", d)} \
+    libopusenc \
+"
+
 RDEPENDS_packagegroup-meta-oe-multimedia_remove_libc-musl = "alsa-oss"
 
 RDEPENDS_packagegroup-meta-oe-navigation ="\
-    geoclue geos libspatialite proj \
+    geos \
+    ${@bb.utils.contains("DISTRO_FEATURES", "bluz4", "gpsd-machine-conf gpsd", "", d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "orrery", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "bluz4", "gpsd gpsd-machine-conf", "", d)} \
-    "
+    geoclue \
+    libspatialite \
+    proj \
+"
+
+RDEPENDS_packagegroup-meta-oe-printing ="\
+    cups-filters \
+    qpdf \
+"
 
 RDEPENDS_packagegroup-meta-oe-security ="\
-    tomoyo-tools \
+    keyutils \
+    nmap \
     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "passwdqc", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "bluz5", "nmap", "", d)} \
-    "
+    softhsm \
+    tomoyo-tools \
+"
 
 RDEPENDS_packagegroup-meta-oe-shells ="\
-    dash tcsh zsh \
-    "
-
-NE10 = ""
-NE10_aarch64 = "ne10"
-NE10_armv7a = "ne10"
-NE10_armv7ve = "ne10"
+    dash \
+    mksh \
+    tcsh \
+    zsh \
+"
 
 RDEPENDS_packagegroup-meta-oe-support ="\
-    anthy asio atop augeas avro-c bdwgc frame grail c-ares \
-    ccid ceres-solver ckermit cpprest ctapi-common daemonize \
-    daemontools devmem2 dfu-util dfu-util-native digitemp \
-    dstat eject enca epeg espeak fbset fbset-modes \
-    fftw fltk-native gd gflags glog gnulib gperftools \
-    gpm gradm gsl gsoap hddtemp hidapi htop hunspell hwdata iksemel \
-    libinih inotify-tools joe lcms lcov libatasmart libbytesize \
-    libcereal libcyusbserial libee libeigen libestr libftdi libgit2 \
-    libgpiod libiio libjs-jquery libjs-sizzle liblinebreak libmicrohttpd \
-    libmxml liboauth libol liboop libp11 libraw1394 libsmi libsoc libssh2 \
-    libssh libtar libteam libtinyxml2 libtinyxml libusbg libusb-compat libutempter \
-    links lockdev log4c log4cpp logwarn libdevmapper lvm2 \
-    mailcap mbuffer mg minini \
-    multipath-tools nano neon nmon numactl onig openct openldap \
-    opensc wbxml2 p910nd pcsc-lite picocom libotr pidgin \
-    pngcheck poco poppler poppler-data portaudio-v19 pps-tools \
-    pv pxaregs raptor2 rdfind read-edid rsnapshot \
-    satyr sdparm pty-forward-native serial-forward \
-    sg3-utils sharutils spitools srecord ssiapi stm32flash \
-    syslog-ng system-config-keyboard tbb thin-provisioning-tools tokyocabinet \
-    tree uhubctl unixodbc uriparser usb-modeswitch \
-    usb-modeswitch-data uthash utouch-evemu utouch-frame \
-    vim vim-tiny websocketpp xdelta3 xdg-user-dirs xmlstarlet \
-    zbar zile \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geis toscoterm uim synergy utouch-mtview links-x11 fltk pidgin-otr", "", d)} \
+    anthy \
+    atop \
+    ace-cloud-editor \
+    frame \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geis", "", d)} \
+    geis \
+    grail \
+    asio \
+    augeas \
+    avro-c \
+    bdwgc \
+    c-ares \
+    cmark \
+    ${@bb.utils.contains("DISTRO_FEATURES", "polkit gobject-introspection-data", "colord", "", d)} \
+    consolation \
+    cpprest \
+    ctapi-common \
+    dfu-util \
+    dhex \
+    digitemp \
+    dstat \
+    espeak \
+    exiv2 \
+    libnice \
+    c-periphery \
+    fmt \
+    function2 \
+    gd \
+    gflags \
+    glog \
+    gperftools \
+    gpm \
+    gsoap \
+    hdf5 \
+    htop \
+    hunspell-dictionaries \
+    hunspell \
+    hwdata \
+    iksemel \
+    gengetopt \
+    imagemagick \
+    iniparser \
+    inotify-tools \
+    joe \
+    lcms \
+    lcov \
+    imapfilter \
+    libbytesize \
+    libcyusbserial \
+    libestr \
+    libfann \
+    libftdi \
+    ccid \
+    zchunk \
+    libgpiod \
+    libgpiod \
+    ckermit \
+    libcereal \
+    daemontools \
+    libiio \
+    devmem2 \
+    libgit2 \
+    libharu \
+    eject \
+    enca \
+    epeg \
+    libmxml \
+    fbset-modes \
+    fbset \
+    liboop \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "fltk", "", d)} \
+    freerdp \
+    libgusb \
+    emacs \
+    libp11 \
+    libraw1394 \
+    gradm \
+    gsl \
+    librsync \
+    hddtemp \
+    hidapi \
+    libsoc \
+    libmimetic \
+    libinih \
+    libtar \
+    libteam \
+    libusb-compat \
+    libatasmart \
     libcanberra \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "xorgxrdp xrdp", "", d)} \
-    procmail \
-    ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "udisks2 upower", "", d)} \
-    ${NE10} \
+    libssh \
+    libssh2 \
+    libee \
+    libusbgx-config \
+    libusbgx \
+    lockdev \
+    logwarn \
+    libjs-jquery \
+    libjs-sizzle \
+    liblinebreak \
+    mailcap \
+    liboauth \
+    libol \
+    mg \
+    monit \
+    mscgen \
+    libsmi \
+    remmina \
+    neon \
+    nmon \
+    libtinyxml \
+    libusbg \
+    libutempter \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "links-x11", "links", d)} \
     ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "lio-utils", "", d)} \
-    "
-
+    log4c \
+    log4cpp \
+    nspr \
+    libdevmapper \
+    lvm2 \
+    nss \
+    mbuffer \
+    onig \
+    mime-support \
+    minini \
+    multipath-tools \
+    numactl \
+    clinfo \
+    opencv \
+    opensc \
+    openct \
+    openldap \
+    wbxml2 \
+    p910nd \
+    libtinyxml2 \
+    picocom \
+    funyahoo-plusplus \
+    icyque \
+    libotr \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "pidgin-otr", "", d)} \
+    pidgin \
+    purple-skypeweb \
+    pidgin-sipe \
+    pngcheck \
+    poco \
+    poppler-data \
+    poppler \
+    portaudio-v19 \
+    procmail \
+    pxaregs \
+    pv \
+    rsnapshot \
+    pps-tools \
+    raptor2 \
+    rdfind \
+    sdparm \
+    serial-forward \
+    read-edid \
+    spitools \
+    libsass \
+    sassc \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "synergy", "", d)} \
+    syslog-ng \
+    system-config-keyboard \
+    tbb \
+    satyr \
+    pcsc-lite \
+    sharutils \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "toscoterm", "", d)} \
+    sg3-utils \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "uim", "", d)} \
+    uchardet \
+    srecord \
+    ssiapi \
+    tree \
+    utouch-evemu \
+    utouch-frame \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "utouch-mtview", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "udisks2", "", d)} \
+    stm32flash \
+    tokyocabinet \
+    xmlstarlet \
+    thin-provisioning-tools \
+    uhubctl \
+    zile \
+    unixodbc \
+    daemonize \
+    upower \
+    xxhash \
+    unicode-ucd \
+    xdelta3 \
+    uriparser \
+    nano \
+    xdg-user-dirs \
+    xmlsec1 \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "xorgxrdp xrdp", "", d)} \
+    usb-modeswitch-data \
+    usb-modeswitch \
+    liburing \
+    zbar \
+    libmicrohttpd \
+"
+RDEPENDS_packagegroup-meta-oe-support_append_armv7a = " ne10"
+RDEPENDS_packagegroup-meta-oe-support_append_armv7ve = " ne10"
+RDEPENDS_packagegroup-meta-oe-support_append_aarch64 = " ne10"
+RDEPENDS_packagegroup-meta-oe-support_append_x86 = " mcelog mce-inject mce-test open-vm-tools vboxguestdrivers"
+RDEPENDS_packagegroup-meta-oe-support_append_x86-64 = " mcelog mce-inject mce-test open-vm-tools vboxguestdrivers"
 RDEPENDS_packagegroup-meta-oe-support_remove_arm ="numactl"
 RDEPENDS_packagegroup-meta-oe-support_remove_mipsarch = "gperftools"
 RDEPENDS_packagegroup-meta-oe-support_remove_riscv64 = "gperftools uim"
 RDEPENDS_packagegroup-meta-oe-support_remove_riscv32 = "gperftools uim"
 RDEPENDS_packagegroup-meta-oe-support_remove_powerpc = "ssiapi"
 
-RDEPENDS_packagegroup-meta-oe-support-egl ="\
-    freerdp libnice opencv \
-    "
-
 RDEPENDS_packagegroup-meta-oe-test ="\
-    catch2 cppunit cunit cxxtest evtest fb-test \
-    fwts googletest pm-qa stress-ng testfloat \
-    "
+    bats \
+    cppunit \
+    cukinia \
+    cunit \
+    cxxtest \
+    evtest \
+    fb-test \
+    fwts \
+    googletest \
+    pm-qa \
+    testfloat \
+"
 RDEPENDS_packagegroup-meta-oe-test_remove_libc-musl = "pm-qa"
 RDEPENDS_packagegroup-meta-oe-test_remove_arm = "fwts"
 RDEPENDS_packagegroup-meta-oe-test_remove_mipsarch = "fwts"
@@ -306,14 +916,29 @@
     uthash-ptest \
     libee-ptest \
     poco-ptest \
-    "
+"
+RDEPENDS_packagegroup-meta-oe-ptest-packages_append_x86 = " mcelog-ptest"
+RDEPENDS_packagegroup-meta-oe-ptest-packages_append_x86-64 = " mcelog-ptest"
+
 RDEPENDS_packagegroup-meta-oe-ptest-packages_remove_riscv64 = "oprofile-ptest"
 RDEPENDS_packagegroup-meta-oe-ptest-packages_remove_riscv32 = "oprofile-ptest"
-
-RDEPENDS_packagegroup-meta-oe-ptest-packages_append_x86 = "\
-    mcelog-ptest \
-"
-RDEPENDS_packagegroup-meta-oe-ptest-packages_append_x86-64 = "\
-    mcelog-ptest \
-"
 RDEPENDS_packagegroup-meta-oe-ptest-packages_remove_arm = "numactl-ptest"
+
+
+RDEPENDS_packagegroup-meta-oe-fortran-packages = "\
+    lapack \
+    octave \
+"
+# library-only or headers-only packages
+# They wont be built as part of images but might be interesting to include
+# with dev-pkgs images
+#
+# opencl-headers sdbus-c++-libsystemd boost-url nlohmann-fifo sqlite-orm
+# nlohmann-json exprtk liblightmodbus p8platform gnome-doc-utils-stub
+# glm ttf-mplus xbitmaps ceres-solver cli11 fftw gnulib libeigen ade
+# spdlog span-lite uthash websocketpp catch2 properties-cpp
+
+# rsyslog conflicts with syslog-ng so its not included here
+
+EXCLUDE_FROM_WORLD = "1"
+
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.1/run-ptest b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/run-ptest
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.1/run-ptest
rename to meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.8.3/run-ptest
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.1.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.3.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.1.bb
rename to meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.3.bb
index 9eaec0f..3b87c22 100644
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_0.8.3.bb
@@ -8,7 +8,7 @@
 
 DEPENDS += "expat"
 
-SRCREV = "3a4f343fb924650e7639660efa5f143961162044"
+SRCREV = "6e8e5aadb674cccea5bdd55141db5dad887fbacd"
 SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
 
 S = "${WORKDIR}/tools"
diff --git a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.1.bb b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.3.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.1.bb
rename to meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.3.bb
index 82860a8..9882976 100644
--- a/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.8.3.bb
@@ -16,7 +16,7 @@
 
 DEPENDS += "expat"
 
-SRCREV = "3a4f343fb924650e7639660efa5f143961162044"
+SRCREV = "6e8e5aadb674cccea5bdd55141db5dad887fbacd"
 SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master"
 SRC_URI += "file://run-ptest"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.8.3.bb b/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.8.3.bb
index 5d45321..1513255 100644
--- a/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.8.3.bb
+++ b/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.8.3.bb
@@ -29,6 +29,11 @@
 COMPILER_toolchain-clang = "clang"
 COMPILER  ?= "gcc"
 
+PACKAGECONFIG ??= "no-iconv no-getconf"
+
+PACKAGECONFIG[no-iconv] = ",,"
+PACKAGECONFIG[no-getconf] = ",,"
+
 EXTRA_OEMAKE = 'CROSS_COMPILE="${HOST_PREFIX}" \
                 CC="${COMPILER}" \
                 STRIP="strip" \
@@ -56,7 +61,7 @@
     sed -e 's/CONFIG_SWAPON=y/# CONFIG_SWAPON is not set/' -i .config
 
     # Enable init if toybox was set as init manager
-    if [[ ${VIRTUAL-RUNTIME_init_manager} == *"toybox"* ]]; then
+    if ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','toybox','true','false',d)}; then
         sed -e 's/# CONFIG_INIT is not set/CONFIG_INIT=y/' -i .config
     fi
 }
@@ -67,6 +72,12 @@
     # Create a list of links needed
     ${BUILD_CC} -I . scripts/install.c -o generated/instlist
     ./generated/instlist long | sed -e 's#^#/#' > toybox.links
+    if ${@bb.utils.contains('PACKAGECONFIG','no-iconv','true','false',d)}; then
+        sed -i -e '/iconv$/d' toybox.links
+    fi
+    if ${@bb.utils.contains('PACKAGECONFIG','no-getconf','true','false',d)}; then
+        sed -i -e '/getconf$/d' toybox.links
+    fi
 }
 
 do_install() {
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.3.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.4.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.3.bb
rename to meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.4.bb
index 93eba93..b9a6b71 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.3.4.bb
@@ -21,8 +21,8 @@
 "
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
-SRC_URI[md5sum] = "6c0ce8be21a7687b89354c77757d0c5b"
-SRC_URI[sha256sum] = "3bca4ffe39e2f94cef50f6ea65acb873a6dbce5db34fc6bcefe38b6d095e82df"
+SRC_URI[md5sum] = "911272e73181fdc850bb4d25103a9f83"
+SRC_URI[sha256sum] = "9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773"
 
 inherit autotools gettext pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index 1aa1f68..46a6400 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -31,7 +31,8 @@
 
 inherit cmake gettext binconfig update-rc.d useradd systemd multilib_script
 
-MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mysql_install_db ${PN}-server:${bindir}/mysqld_safe"
+MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mariadbd-safe \
+                    ${PN}-server:${bindir}/mariadb-install-db"
 
 INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb"
 INITSCRIPT_NAME_${PN}-server = "mysqld"
@@ -243,69 +244,78 @@
 FILES_${PN}-client = "\
     ${bindir}/myisam_ftdump \
     ${bindir}/mysql \
+    ${bindir}/mariadb \
     ${bindir}/mysql_client_test \
+    ${bindir}/mariadb-client-test \
     ${bindir}/mysql_client_test_embedded \
+    ${bindir}/mariadb-client-test-embedded \
     ${bindir}/mysql_find_rows \
+    ${bindir}/mariadb-find-rows \
     ${bindir}/mysql_fix_extensions \
+    ${bindir}/mariadb-fix-extensions \
     ${bindir}/mysql_waitpid \
+    ${bindir}/mariadb-waitpid \
     ${bindir}/mysqlaccess \
+    ${bindir}/mariadb-access \
     ${bindir}/mysqladmin \
-    ${bindir}/mysqlbug \
+    ${bindir}/mariadb-admin \
     ${bindir}/mysqlcheck \
+    ${bindir}/mariadb-check \
     ${bindir}/mysqldump \
+    ${bindir}/mariadb-dump \
     ${bindir}/mysqldumpslow \
+    ${bindir}/mariadb-dumpslow \
     ${bindir}/mysqlimport \
+    ${bindir}/mariadb-import \
     ${bindir}/mysqlshow \
+    ${bindir}/mariadb-show \
     ${bindir}/mysqlslap \
+    ${bindir}/mariadb-slap \
     ${bindir}/mysqltest_embedded \
+    ${bindir}/mariadb-test-embedded \
     ${libexecdir}/mysqlmanager \
     ${sysconfdir}/my.cnf.d/mysql-clients.cnf"
 
 FILES_${PN}-server = "\
-    ${bindir}/comp_err \
-    ${bindir}/isamchk \
-    ${bindir}/isamlog \
     ${bindir}/msql2mysql \
     ${bindir}/my_print_defaults \
     ${bindir}/myisamchk \
     ${bindir}/myisamlog \
     ${bindir}/myisampack \
     ${bindir}/mysql_convert_table_format \
-    ${bindir}/mysql_fix_privilege_tables \
+    ${bindir}/mariadb-convert-table-format \
     ${bindir}/mysql_install_db \
+    ${bindir}/mariadb-install-db \
     ${bindir}/mysql_secure_installation \
+    ${bindir}/mariadb-secure-installation \
     ${bindir}/mysql_setpermission \
+    ${bindir}/mariadb-setpermission \
     ${bindir}/mysql-systemd-start \
     ${bindir}/mysql_tzinfo_to_sql \
+    ${bindir}/mariadb-tzinfo-to-sql \
     ${bindir}/mysql_upgrade \
+    ${bindir}/mariadb-upgrade \
     ${bindir}/mysql_plugin \
-    ${bindir}/mysql_zap \
+    ${bindir}/mariadb-plugin \
     ${bindir}/mysqlbinlog \
+    ${bindir}/mariadb-binlog \
     ${bindir}/mysqld_multi \
+    ${bindir}/mariadbd-multi \
+    ${bindir}/mariadbd-safe \
     ${bindir}/mysqld_safe \
     ${bindir}/mysqld_safe_helper \
+    ${bindir}/mariadbd-safe-helper \
     ${bindir}/mysqlhotcopy \
+    ${bindir}/mariadb-hotcopy \
     ${bindir}/mysqltest \
-    ${bindir}/ndb_delete_all \
-    ${bindir}/ndb_desc \
-    ${bindir}/ndb_drop_index \
-    ${bindir}/ndb_drop_table \
-    ${bindir}/ndb_mgm \
-    ${bindir}/ndb_restore \
-    ${bindir}/ndb_select_all \
-    ${bindir}/ndb_select_count \
-    ${bindir}/ndb_show_tables \
-    ${bindir}/ndb_waiter \
-    ${bindir}/pack_isam \
+    ${bindir}/mariadb-test \
     ${bindir}/perror \
     ${bindir}/replace \
     ${bindir}/resolve_stack_dump \
     ${bindir}/resolveip \
     ${libexecdir}/mysqld \
     ${sbindir}/mysqld \
-    ${sbindir}/ndb_cpcd \
-    ${sbindir}/ndbd \
-    ${sbindir}/ndb_mgmd \
+    ${sbindir}/mariadbd \
     ${libdir}/plugin/*.so \
     ${libdir}/security/*.so \
     ${libdir}/plugin/auth_pam_tool_dir/auth_pam_tool \
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 54ccf1f..090e16f 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -247,10 +247,8 @@
 
 FILES_${PN}-client = "${bindir}/clusterdb \
     ${bindir}/createdb \
-    ${bindir}/createlang \
     ${bindir}/createuser \
     ${bindir}/dropdb \
-    ${bindir}/droplang \
     ${bindir}/dropuser \
     ${bindir}/pg_dump \
     ${bindir}/pg_dumpall \
@@ -332,7 +330,7 @@
     ${libdir}/${BPN}/sslinfo.so \
     ${libdir}/${BPN}/tablefunc.so \
     ${libdir}/${BPN}/test_parser.so ${libdir}/${BPN}/timetravel.so \
-    ${libdir}/${BPN}/tsearch2.so ${libdir}/${BPN}/uuid-ossp.so \
+    ${libdir}/${BPN}/uuid-ossp.so \
     ${libdir}/${BPN}/pgxml.so ${libdir}/${BPN}/passwordcheck.so \
     ${libdir}/${BPN}/pg_upgrade_support.so ${libdir}/${BPN}/.so \
     ${libdir}/${BPN}/unaccent.so \
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.3.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.4.bb
similarity index 63%
rename from meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.3.bb
rename to meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.4.bb
index cc7e3ff..6ea9acc 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.3.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_12.4.bb
@@ -8,5 +8,4 @@
    file://0001-Improve-reproducibility.patch \
 "
 
-SRC_URI[md5sum] = "a30c023dd7088e44d73be71af2ef404a"
-SRC_URI[sha256sum] = "94ed64a6179048190695c86ec707cc25d016056ce10fc9d229267d9a8f1dcf41"
+SRC_URI[sha256sum] = "bee93fbe2c32f59419cb162bcc0145c58da9a8644ee154a30b9a5ce47de606cc"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
index 8524517..87771cb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
@@ -29,24 +29,21 @@
 
 --- a/src/procattr.c
 +++ b/src/procattr.c
-@@ -8,7 +8,19 @@
+@@ -8,12 +8,16 @@
  #include "selinux_internal.h"
  #include "policy.h"
  
 -#ifndef __BIONIC__
 +/* Bionic and glibc >= 2.30 declare gettid() system call wrapper in unistd.h and
 + * has a definition for it */
-+#ifdef __BIONIC__
-+  #define OVERRIDE_GETTID 0
-+#elif !defined(__GLIBC_PREREQ)
-+  #define OVERRIDE_GETTID 1
-+#elif !__GLIBC_PREREQ(2,29)
-+  #define OVERRIDE_GETTID 1
-+#else
-+  #define OVERRIDE_GETTID 0
-+#endif
-+
-+#if OVERRIDE_GETTID
++#if defined(__GLIBC_)
++#if !__GLIBC_PREREQ(2,30)
  static pid_t gettid(void)
  {
  	return syscall(__NR_gettid);
+ }
+ #endif
++#endif
+ 
+ static int getprocattrcon(char ** context,
+ 			  pid_t pid, const char *attr)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
index a9650c2..53f8888 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
@@ -1,5 +1,10 @@
-It fails to compile doxygen-native when /usr/bin/python is a link to python3 on
-build host:
+From aa833cf56c5cc2e87a1d91881eb2286beb34e417 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Wed, 26 Aug 2020 10:52:10 +0300
+Subject: [PATCH] doxygen: Fix Python issues for doxygen-native
+
+It fails to compile doxygen-native when /usr/bin/python is a link
+to python3 on build host:
 
 | Failed to import the site module
 | Traceback (most recent call last):
@@ -21,21 +26,31 @@
 |     _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
 | ModuleNotFoundError: No module named '_sysconfigdata'
 
-Replace find_package PythonInterp with Python3 to fix this issue that
-it uses python3 from python3-native. And it also replaces the result
-variable PYTHON_EXECUTABLE with Python3_EXECUTABLE.
+Replace find_package PythonInterp with Python3 to fix this issue
+that it uses python3 from python3-native. And it also replaces the
+result variable PYTHON_EXECUTABLE with Python3_EXECUTABLE.
 
 This patch is only needded by doxygen-native.
 
 Upstream-Status: Inappropriate[oe specific]
 
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Co-Authored-By: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 ---
+ CMakeLists.txt                  |  2 +-
+ addon/doxywizard/CMakeLists.txt |  6 +++---
+ doc/CMakeLists.txt              |  6 +++---
+ examples/CMakeLists.txt         |  4 ++--
+ libmscgen/CMakeLists.txt        |  2 +-
+ src/CMakeLists.txt              | 12 ++++++------
+ testing/CMakeLists.txt          |  4 ++--
+ 7 files changed, 18 insertions(+), 18 deletions(-)
+
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 969ae58..604400f 100644
+index 35e6a0c2..9aaebbdf 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -93,7 +93,7 @@ else ()
+@@ -100,7 +100,7 @@ else ()
  endif ()
  
  find_program(DOT NAMES dot)
@@ -45,7 +60,7 @@
  find_package(BISON REQUIRED)
  if (BISON_VERSION VERSION_LESS 2.7)
 diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt
-index 6aacd8b..fa197e9 100644
+index 6aacd8b6..fa197e9e 100644
 --- a/addon/doxywizard/CMakeLists.txt
 +++ b/addon/doxywizard/CMakeLists.txt
 @@ -58,7 +58,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA
@@ -76,7 +91,7 @@
  	OUTPUT  ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
      )
 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
-index 032c16a..332f1b2 100644
+index a094c570..8a757c20 100644
 --- a/doc/CMakeLists.txt
 +++ b/doc/CMakeLists.txt
 @@ -132,7 +132,7 @@ configure_file(${CMAKE_SOURCE_DIR}/doc/doxyindexer.1      ${PROJECT_BINARY_DIR}/
@@ -85,7 +100,7 @@
  add_custom_command(
 -        COMMAND ${PYTHON_EXECUTABLE} translator.py ${CMAKE_SOURCE_DIR}
 +        COMMAND ${Python3_EXECUTABLE} translator.py ${CMAKE_SOURCE_DIR}
-         DEPENDS ${PROJECT_BINARY_DIR}/doc/maintainers.txt ${PROJECT_BINARY_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py
+         DEPENDS ${CMAKE_SOURCE_DIR}/doc/maintainers.txt ${CMAKE_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES}
          OUTPUT language.doc
          WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc
 @@ -141,7 +141,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1)
@@ -107,235 +122,19 @@
      COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm
          DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc
 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 967f3d4..a8d1aad 100644
+index 3f1c79b8..d5866ee1 100644
 --- a/examples/CMakeLists.txt
 +++ b/examples/CMakeLists.txt
-@@ -52,196 +52,196 @@ add_custom_target(examples
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen class.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
- 	DEPENDS doxygen class.h class.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/class/html/index.html ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen define.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
- 	DEPENDS doxygen define.h define.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/define/html/index.html ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen enum.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
- 	DEPENDS doxygen enum.h enum.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/enum/html/index.html ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen file.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
- 	DEPENDS doxygen file.h file.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/file/html/index.html ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen func.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
- 	DEPENDS doxygen func.h func.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/func/html/index.html ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen javadoc-banner.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
- 	DEPENDS doxygen javadoc-banner.h javadoc-banner.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/html/index.html ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen page.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
- 	DEPENDS doxygen page.doc page.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/page/html/index.html ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen relates.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
- 	DEPENDS doxygen relates.cpp relates.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/relates/html/index.html ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen author.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
- 	DEPENDS doxygen author.cpp author.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/author/html/index.html ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen par.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
- 	DEPENDS doxygen par.cpp par.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/par/html/index.html ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen overload.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
- 	DEPENDS doxygen overload.cpp overload.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/overload/html/index.html ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen example.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
- 	DEPENDS doxygen example.cpp example_test.cpp example.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/example/html/index.html ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen include.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
- 	DEPENDS doxygen include.cpp include_test.cpp include.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/include/html/index.html ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen qtstyle.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
- 	DEPENDS doxygen qtstyle.cpp qtstyle.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/qtstyle/html/index.html ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen jdstyle.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
- 	DEPENDS doxygen jdstyle.cpp jdstyle.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/jdstyle/html/index.html ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen structcmd.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
- 	DEPENDS doxygen structcmd.h structcmd.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/structcmd/html/index.html ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen autolink.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
- 	DEPENDS doxygen autolink.cpp autolink.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/autolink/html/index.html ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen tag.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
- 	DEPENDS doxygen tag.cpp tag.cfg ${PROJECT_BINARY_DIR}/html/examples/example/html/index.html ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/tag/html/index.html ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen restypedef.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
- 	DEPENDS doxygen restypedef.cpp restypedef.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/restypedef/html/index.html ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen afterdoc.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
- 	DEPENDS doxygen afterdoc.h afterdoc.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/afterdoc/html/index.html ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen templ.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
- 	DEPENDS doxygen templ.cpp templ.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/template/html/index.html ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen group.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
- 	DEPENDS doxygen group.cpp group.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/group/html/index.html ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen memgrp.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
- 	DEPENDS doxygen memgrp.cpp memgrp.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/memgrp/html/index.html ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen pyexample.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
- 	DEPENDS doxygen pyexample.py pyexample.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/pyexample/html/index.html ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen tclexample.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
- 	DEPENDS doxygen tclexample.tcl tclexample.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/tclexample/html/index.html ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen mux.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
- 	DEPENDS doxygen mux.vhdl mux.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/mux/html/index.html ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen manual.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
- 	DEPENDS doxygen manual.c manual.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/manual/html/index.html ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen docstring.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
- 	DEPENDS doxygen docstring.py docstring.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/docstring/html/index.html ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
- )
-@@ -249,7 +249,7 @@ add_custom_command(
+@@ -51,7 +51,7 @@ foreach (f_inp  ${BASIC_EXAMPLES})
+         string(REGEX REPLACE ":.*" "" f ${f_inp})
+     add_custom_command(
+ 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
+-        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman_doc.tex
++        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman_doc.tex
+ 	DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py
+ 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman_doc.tex
+     )
+@@ -68,7 +68,7 @@ add_custom_target(examples
  if (DOT)
    add_custom_command(
  	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
@@ -345,7 +144,7 @@
  	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex
    )
 diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt
-index 079fcfc..e6d86f6 100644
+index 079fcfc8..e6d86f61 100644
 --- a/libmscgen/CMakeLists.txt
 +++ b/libmscgen/CMakeLists.txt
 @@ -7,7 +7,7 @@ include_directories(
@@ -358,76 +157,84 @@
          OUTPUT  ${GENERATED_SRC}/${lex_file}.l.h
      )
 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 23460d0..58f679a 100644
+index cb289116..356741ff 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -35,7 +35,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
+@@ -39,7 +39,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
  
  # configvalues.h
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configvalues.h
  )
-@@ -47,7 +47,7 @@ add_custom_target(
+@@ -51,7 +51,7 @@ add_custom_target(
  
  # configvalues.cpp
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configvalues.cpp
  )
-@@ -55,7 +55,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
+@@ -59,7 +59,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
  
  # configoptions.cpp
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configoptions.cpp
  )
-@@ -86,7 +86,7 @@ file(GLOB RESOURCES ${CMAKE_SOURCE_DIR}/templates/*/*)
+@@ -94,7 +94,7 @@ endif()
  # resources.cpp
  add_custom_command(
      COMMENT  "Generating ${GENERATED_SRC}/resources.cpp"
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
-     DEPENDS ${RESOURCES}
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
+     DEPENDS ${RESOURCES} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py
      OUTPUT ${GENERATED_SRC}/resources.cpp
  )
-@@ -94,7 +94,7 @@ set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED
+@@ -102,7 +102,7 @@ set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED
  
  # layout_default.xml
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/layout_default.xml
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/to_c_cmd.py < ${CMAKE_CURRENT_LIST_DIR}/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/to_c_cmd.py < ${CMAKE_CURRENT_LIST_DIR}/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/layout_default.xml ${CMAKE_CURRENT_LIST_DIR}/to_c_cmd.py
      OUTPUT  ${GENERATED_SRC}/layout_default.xml.h
  )
-@@ -124,7 +124,7 @@ foreach(lex_file ${LEX_FILES})
+@@ -131,7 +131,7 @@ foreach(lex_file ${LEX_FILES})
      set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files")
      set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files")
      add_custom_command(
--        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
-+        COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
-         DEPENDS ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l
+-        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
++        COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
+         DEPENDS ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l
          OUTPUT  ${GENERATED_SRC}/${lex_file}.l.h
      )
 diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
-index 40cb40b..a301acd 100644
+index b354e78f..28d45e11 100644
 --- a/testing/CMakeLists.txt
 +++ b/testing/CMakeLists.txt
-@@ -1,9 +1,9 @@
+@@ -1,7 +1,7 @@
+ # run all tests sequentially (keep for backward compatibility)
  add_custom_target(tests
-          COMMENT "Running doxygen tests..."
--	 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
-+	 COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
-          DEPENDS doxygen
- )
- add_test(NAME suite
--	COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
-+	COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ 	COMMENT "Running doxygen tests..."
+-	COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++	COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ 	DEPENDS doxygen
  )
  
+@@ -19,6 +19,6 @@ foreach(TEST_FILE ${TEST_FILES})
+ 	string(REGEX REPLACE "^.*/([0-9][0-9][0-9]*).*$" "\\1" TEST_ID "${TEST_FILE}")
+ 	# add a test target for each test
+ 	add_test(NAME ${TEST_NAME}
+-		 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++		 COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ 	)
+ endforeach()
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.20.bb
similarity index 79%
rename from meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
rename to meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.20.bb
index 45de718..d4ac3b7 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.20.bb
@@ -10,8 +10,8 @@
            file://0001-build-don-t-look-for-Iconv.patch \
 "
 SRC_URI_append_class-native = " file://doxygen-native-only-check-python3.patch"
-SRC_URI[md5sum] = "7997a15c73a8bd6d003eaba5c2ee2b47"
-SRC_URI[sha256sum] = "2cba988af2d495541cbbe5541b3bee0ee11144dcb23a81eada19f5501fd8b599"
+SRC_URI[md5sum] = "8729936a843232a66fe970ef65f3c3e4"
+SRC_URI[sha256sum] = "e0db6979286fd7ccd3a99af9f97397f2bae50532e4ecb312aa18862f8401ddec"
 
 inherit cmake python3native
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
index 8282091..039999f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
@@ -16,3 +16,5 @@
 FILES_${PN} += "${datadir}/icons"
 
 EXTRA_OECONF = "--disable-html-docs"
+
+RRECOMMENDS_${PN} += "source-code-pro-fonts"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.5.bb b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.5.bb
deleted file mode 100644
index 967ac76..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "log4cplus provides a simple C++ logging API for log management"
-SECTION = "libs"
-HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
-BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
-
-LICENSE = "Apache-2.0 & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \
-          "
-SRC_URI[md5sum] = "71dd956bf686195127559671f1426cff"
-SRC_URI[sha256sum] = "c07115c23219390633798def30b7b51a0f79fdeb857e4b49632f17746d0ceb97"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
-UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch
new file mode 100644
index 0000000..fa90aa1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch
@@ -0,0 +1,125 @@
+From a5a4bb4254b2109bd3e272174946f0bb36ee99a8 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Tue, 25 Aug 2020 11:45:45 +0300
+Subject: [PATCH] Fix musl build
+
+Apply the following fixes for musl:
+
+- Fix basename() is in libgen.h
+- Fix wrong usage of LONG_BIT
+
+Same fixes have been submitted to the upstream of lshw by Sergio
+Prado but they have not been merged yet.
+
+Upstream-Status: Submitted
+
+Co-Authored-By: Sergio Prado <sergio.prado@e-labworks.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ src/core/abi.cc   |  4 +---
+ src/core/sysfs.cc | 19 ++++++++++---------
+ 2 files changed, 11 insertions(+), 12 deletions(-)
+
+diff --git a/src/core/abi.cc b/src/core/abi.cc
+index adff7b5..76c664c 100644
+--- a/src/core/abi.cc
++++ b/src/core/abi.cc
+@@ -20,9 +20,7 @@ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $");
+ bool scan_abi(hwNode & system)
+ {
+   // are we compiled as 32- or 64-bit process ?
+-  long sc = sysconf(LONG_BIT);
+-  if(sc==-1) sc = sysconf(_SC_LONG_BIT);
+-  if(sc!=-1) system.setWidth(sc);
++  system.setWidth(LONG_BIT);
+ 
+   pushd(PROC_SYS);
+ 
+diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
+index 32d6564..c2fa84f 100644
+--- a/src/core/sysfs.cc
++++ b/src/core/sysfs.cc
+@@ -16,6 +16,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <sys/mount.h>
++#include <libgen.h>
+ 
+ 
+ __ID("@(#) $Id$");
+@@ -100,7 +101,7 @@ static string sysfs_getbustype(const string & path)
+   {
+     devname =
+       string(fs.path + "/bus/") + string(namelist[i]->d_name) +
+-      "/devices/" + basename(path.c_str());
++      "/devices/" + basename(const_cast<char*>(path.c_str()));
+ 
+     if (samefile(devname, path))
+       return string(namelist[i]->d_name);
+@@ -140,7 +141,7 @@ static string sysfstobusinfo(const string & path)
+ 
+   if (bustype == "usb")
+   {
+-    string name = basename(path.c_str());
++    string name = basename(const_cast<char*>(path.c_str()));
+     if (matches(name, "^[0-9]+-[0-9]+(\\.[0-9]+)*:[0-9]+\\.[0-9]+$"))
+     {
+       size_t colon = name.rfind(":");
+@@ -151,7 +152,7 @@ static string sysfstobusinfo(const string & path)
+ 
+   if (bustype == "virtio")
+   {
+-    string name = basename(path.c_str());
++    string name = basename(const_cast<char*>(path.c_str()));
+     if (name.compare(0, 6, "virtio") == 0)
+       return "virtio@" + name.substr(6);
+     else
+@@ -159,10 +160,10 @@ static string sysfstobusinfo(const string & path)
+   }
+ 
+   if (bustype == "vio")
+-    return string("vio@") + basename(path.c_str());
++    return string("vio@") + basename(const_cast<char*>(path.c_str()));
+ 
+   if (bustype == "ccw")
+-    return string("ccw@") + basename(path.c_str());
++    return string("ccw@") + basename(const_cast<char*>(path.c_str()));
+ 
+   if (bustype == "ccwgroup")
+   {
+@@ -240,7 +241,7 @@ string entry::driver() const
+   string driverlink = This->devpath + "/driver";
+   if (!exists(driverlink))
+     return "";
+-  return basename(readlink(driverlink).c_str());
++  return basename(const_cast<char*>(readlink(driverlink).c_str()));
+ }
+ 
+ 
+@@ -328,7 +329,7 @@ string entry::name_in_class(const string & classname) const
+ 
+ string entry::name() const
+ {
+-  return basename(This->devpath.c_str());
++  return basename(const_cast<char*>(This->devpath.c_str()));
+ }
+ 
+ 
+@@ -340,12 +341,12 @@ entry entry::parent() const
+ 
+ string entry::classname() const
+ {
+-  return basename(dirname(This->devpath).c_str());
++  return basename(const_cast<char*>(dirname(This->devpath).c_str()));
+ }
+ 
+ bool entry::isvirtual() const
+ {
+-  return string(basename(dirname(dirname(This->devpath)).c_str())) == "virtual";
++  return string(basename(const_cast<char*>(dirname(dirname(This->devpath)).c_str()))) == "virtual";
+ }
+ 
+ string entry::string_attr(const string & name, const string & def) const
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
deleted file mode 100644
index 6db6ab9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 62f9ed95b5d0feab426bff452be793c62a6b795a Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:49:21 +0200
-Subject: [PATCH 1/2] Makefile: Fix cross compilation
-
-Allow building on ARMv7 and ARMv8.
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/Makefile      | 2 +-
- src/core/Makefile | 2 +-
- src/gui/Makefile  | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index b50586bc9234..654b786dd899 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -18,7 +18,7 @@ export MANDIR
- export DATADIR
- export SQLITE
- 
--CXX?=c++
-+CXX?=$(CROSS_COMPILE)c++
- INCLUDES=-I./core/
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
-diff --git a/src/core/Makefile b/src/core/Makefile
-index 5bf5a69cc6a6..2bd1b94c4175 100644
---- a/src/core/Makefile
-+++ b/src/core/Makefile
-@@ -1,6 +1,6 @@
- PACKAGENAME?=lshw
- 
--CXX=c++
-+CXX?=$(CROSS_COMPILE)c++
- INCLUDES=
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- CXXFLAGS?=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
-diff --git a/src/gui/Makefile b/src/gui/Makefile
-index 332ce5704819..b0f925490356 100644
---- a/src/gui/Makefile
-+++ b/src/gui/Makefile
-@@ -1,7 +1,7 @@
- PACKAGENAME?=lshw
- 
--CXX?=c++
--CC?=cc
-+CXX?=$(CROSS_COMPILE)c++
-+CC?=$(CROSS_COMPILE)cc
- STRIP?=strip
- OBJCOPY?=objcopy
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
deleted file mode 100644
index d3da01b..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 75667f8a0ae4f1689ff03eb1768b1ee8cdfbf00d Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:49:30 +0200
-Subject: [PATCH 2/2] Makefile: Use supplied LDFLAGS to silence OE GNU_HASH QA
- warning
-
-Fix OpenEmbedded/Yocto QA warning:
-
-    ERROR: lshw-02.16-r1 do_package_qa: QA Issue: No GNU_HASH in the elf binary: 'build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/lshw/02.16-r1/packages-split/lshw/usr/sbin/lshw' [ldflags]
-    ERROR: lshw-02.16-r1 do_package_qa: QA run found fatal errors. Please consider fixing them.
-    ERROR: lshw-02.16-r1 do_package_qa: Function failed: do_package_qa
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 654b786dd899..a441ba2bb666 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -25,7 +25,7 @@ CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
- ifeq ($(SQLITE), 1)
- 	CXXFLAGS+= -DSQLITE $(shell pkg-config --cflags sqlite3)
- endif
--LDFLAGS=-L./core/ -g
-+LDFLAGS+=-L./core/ -g
- ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
- 	LDFLAGS+= -Wl,--as-needed
- endif
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
deleted file mode 100644
index 3492493..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From a89f2ba8496994c8b5e28a89202df15d64c648f9 Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:47:02 +0200
-Subject: [PATCH] sysfs: Fix basename() build with musl
-
-musl provides only standard basename() which accepts non-const string.
-This fixes build error with musl C library:
-
-    | sysfs.cc: In function 'std::__cxx11::string sysfs_getbustype(const string&)':
-    | sysfs.cc:102:21: error: 'basename' was not declared in this scope
-    |        "/devices/" + basename(path.c_str());
-    |                      ^~~~~~~~
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/core/dasd.cc  | 3 ++-
- src/core/sysfs.cc | 9 +++++----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/src/core/dasd.cc b/src/core/dasd.cc
-index 626b8a872b0f..b27844215cc4 100644
---- a/src/core/dasd.cc
-+++ b/src/core/dasd.cc
-@@ -2,6 +2,7 @@
- #include "osutils.h"
- #include "dasd.h"
- #include <glob.h>
-+#include <libgen.h>
- #include <string.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -42,7 +43,7 @@ bool scan_dasd(hwNode & n)
-   {
-     for(dev_num=0;dev_num<devices.gl_pathc;dev_num++)
-     {
--      dev_name = basename(devices.gl_pathv[dev_num]);
-+      dev_name = basename(const_cast<char *>(devices.gl_pathv[dev_num]));
-       for (std::vector<std::string>::iterator it = sysfs_attribs.begin(); it != sysfs_attribs.end(); ++it)
-       {
-         std::string attrib_fname = std::string(SYSFS_PREFIX) + dev_name + "/device/" + *it;
-diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
-index acc9d0056d5e..c56bab7b3b9f 100644
---- a/src/core/sysfs.cc
-+++ b/src/core/sysfs.cc
-@@ -7,6 +7,7 @@
- #include "version.h"
- #include "sysfs.h"
- #include "osutils.h"
-+#include <libgen.h>
- #include <limits.h>
- #include <unistd.h>
- #include <stdlib.h>
-@@ -99,7 +100,7 @@ static string sysfs_getbustype(const string & path)
-   {
-     devname =
-       string(fs.path + "/bus/") + string(namelist[i]->d_name) +
--      "/devices/" + basename(path.c_str());
-+      "/devices/" + basename(const_cast<char *>(path.c_str()));
- 
-     if (samefile(devname, path))
-       return string(namelist[i]->d_name);
-@@ -139,7 +140,7 @@ static string sysfstobusinfo(const string & path)
- 
-   if (bustype == "virtio")
-   {
--    string name = basename(path.c_str());
-+    string name = basename(const_cast<char *>(path.c_str()));
-     if (name.compare(0, 6, "virtio") == 0)
-       return "virtio@" + name.substr(6);
-     else
-@@ -207,7 +208,7 @@ string entry::driver() const
-   string driverlink = This->devpath + "/driver";
-   if (!exists(driverlink))
-     return "";
--  return basename(readlink(driverlink).c_str());
-+  return basename(const_cast<char *>(readlink(driverlink).c_str()));
- }
- 
- 
-@@ -288,7 +289,7 @@ string entry::name_in_class(const string & classname) const
- 
- string entry::name() const
- {
--  return basename(This->devpath.c_str());
-+  return basename(const_cast<char *>(This->devpath.c_str()));
- }
- 
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
similarity index 70%
rename from meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
rename to meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
index d1a7334..a26fac9 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
@@ -13,12 +13,10 @@
 
 SRC_URI = " \
     http://ezix.org/software/files/lshw-B.${PV}.tar.gz \
-    file://0001-Makefile-Fix-cross-compilation.patch \
-    file://0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch \
-    file://0003-sysfs-Fix-basename-build-with-musl.patch \
+    file://0001-Fix-musl-build.patch \
 "
-SRC_URI[md5sum] = "8671c6d94d6324a744b7f21f1bfecfd2"
-SRC_URI[sha256sum] = "ae22ef11c934364be4fd2a0a1a7aadf4495a0251ec6979da280d342a89ca3c2f"
+SRC_URI[md5sum] = "8c70d46e906688309095c73ecb9396e3"
+SRC_URI[sha256sum] = "9bb347ac87142339a366a1759ac845e3dbb337ec000aa1b99b50ac6758a80f80"
 
 S = "${WORKDIR}/lshw-B.${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua/0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch
new file mode 100644
index 0000000..a302874
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch
@@ -0,0 +1,90 @@
+From 1e6df25ac28dcd89f0324177bb55019422404b44 Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Thu, 3 Sep 2020 15:32:17 +0800
+Subject: [PATCH] Fixed bug: barriers cannot be active during sweep
+
+Barriers cannot be active during sweep, even in generational mode.
+(Although gen. mode is not incremental, it can hit a barrier when
+deleting a thread and closing its upvalues.)  The colors of objects are
+being changed during sweep and, therefore, cannot be trusted.
+
+Upstream-Status: Backport [https://github.com/lua/lua/commit/a6da1472c0c5e05ff249325f979531ad51533110]
+CVE: CVE-2020-24371
+
+[Adjust code KGC_INC -> KGC_NORMAL, refer 69371c4b84becac09c445aae01d005b49658ef82]
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ src/lgc.c | 33 ++++++++++++++++++++++++---------
+ 1 file changed, 24 insertions(+), 9 deletions(-)
+
+diff --git a/src/lgc.c b/src/lgc.c
+index 973c269..7af23d5 100644
+--- a/src/lgc.c
++++ b/src/lgc.c
+@@ -142,10 +142,17 @@ static int iscleared (global_State *g, const TValue *o) {
+ 
+ 
+ /*
+-** barrier that moves collector forward, that is, mark the white object
+-** being pointed by a black object. (If in sweep phase, clear the black
+-** object to white [sweep it] to avoid other barrier calls for this
+-** same object.)
++** Barrier that moves collector forward, that is, marks the white object
++** 'v' being pointed by the black object 'o'.  In the generational
++** mode, 'v' must also become old, if 'o' is old; however, it cannot
++** be changed directly to OLD, because it may still point to non-old
++** objects. So, it is marked as OLD0. In the next cycle it will become
++** OLD1, and in the next it will finally become OLD (regular old). By
++** then, any object it points to will also be old.  If called in the
++** incremental sweep phase, it clears the black object to white (sweep
++** it) to avoid other barrier calls for this same object. (That cannot
++** be done is generational mode, as its sweep does not distinguish
++** whites from deads.)
+ */
+ void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v) {
+   global_State *g = G(L);
+@@ -154,7 +161,8 @@ void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v) {
+     reallymarkobject(g, v);  /* restore invariant */
+   else {  /* sweep phase */
+     lua_assert(issweepphase(g));
+-    makewhite(g, o);  /* mark main obj. as white to avoid other barriers */
++    if (g->gckind == KGC_NORMAL)  /* incremental mode? */
++      makewhite(g, o);  /* mark 'o' as white to avoid other barriers */
+   }
+ }
+ 
+@@ -299,10 +307,15 @@ static void markbeingfnz (global_State *g) {
+ 
+ 
+ /*
+-** Mark all values stored in marked open upvalues from non-marked threads.
+-** (Values from marked threads were already marked when traversing the
+-** thread.) Remove from the list threads that no longer have upvalues and
+-** not-marked threads.
++** For each non-marked thread, simulates a barrier between each open
++** upvalue and its value. (If the thread is collected, the value will be
++** assigned to the upvalue, but then it can be too late for the barrier
++** to act. The "barrier" does not need to check colors: A non-marked
++** thread must be young; upvalues cannot be older than their threads; so
++** any visited upvalue must be young too.) Also removes the thread from
++** the list, as it was already visited. Removes also threads with no
++** upvalues, as they have nothing to be checked. (If the thread gets an
++** upvalue later, it will be linked in the list again.)
+ */
+ static void remarkupvals (global_State *g) {
+   lua_State *thread;
+@@ -313,9 +326,11 @@ static void remarkupvals (global_State *g) {
+       p = &thread->twups;  /* keep marked thread with upvalues in the list */
+     else {  /* thread is not marked or without upvalues */
+       UpVal *uv;
++      lua_assert(!isold(thread) || thread->openupval == NULL);
+       *p = thread->twups;  /* remove thread from the list */
+       thread->twups = thread;  /* mark that it is out of list */
+       for (uv = thread->openupval; uv != NULL; uv = uv->u.open.next) {
++        lua_assert(getage(uv) <= getage(thread));
+         if (uv->u.open.touched) {
+           markvalue(g, uv->v);  /* remark upvalue's value */
+           uv->u.open.touched = 0;
+-- 
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua/CVE-2020-15945.patch b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/CVE-2020-15945.patch
new file mode 100644
index 0000000..89ce491
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/CVE-2020-15945.patch
@@ -0,0 +1,167 @@
+From d8d344365945a534f700c82c5dd26f704f89fef3 Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Wed, 5 Aug 2020 16:59:58 +0800
+Subject: [PATCH] Fixed bug: invalid 'oldpc' when returning to a function
+
+The field 'L->oldpc' is not always updated when control returns to a
+function; an invalid value can seg. fault when computing 'changedline'.
+(One example is an error in a finalizer; control can return to
+'luaV_execute' without executing 'luaD_poscall'.) Instead of trying to
+fix all possible corner cases, it seems safer to be resilient to invalid
+values for 'oldpc'. Valid but wrong values at most cause an extra call
+to a line hook.
+
+CVE: CVE-2020-15945
+
+[Adjust the code to be applicable to the tree]
+
+Upstream-Status: Backport [https://github.com/lua/lua/commit/a2195644d89812e5b157ce7bac35543e06db05e3]
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@@windriver.com>
+
+---
+ src/ldebug.c | 30 +++++++++++++++---------------
+ src/ldebug.h |  4 ++++
+ src/ldo.c    |  2 +-
+ src/lstate.c |  1 +
+ src/lstate.h |  2 +-
+ 5 files changed, 22 insertions(+), 17 deletions(-)
+
+diff --git a/src/ldebug.c b/src/ldebug.c
+index 239affb..832b16c 100644
+--- a/src/ldebug.c
++++ b/src/ldebug.c
+@@ -34,9 +34,8 @@
+ #define noLuaClosure(f)		((f) == NULL || (f)->c.tt == LUA_TCCL)
+ 
+ 
+-/* Active Lua function (given call info) */
+-#define ci_func(ci)		(clLvalue((ci)->func))
+-
++/* inverse of 'pcRel' */
++#define invpcRel(pc, p)                ((p)->code + (pc) + 1)
+ 
+ static const char *funcnamefromcode (lua_State *L, CallInfo *ci,
+                                     const char **name);
+@@ -71,20 +70,18 @@ static void swapextra (lua_State *L) {
+ 
+ /*
+ ** This function can be called asynchronously (e.g. during a signal).
+-** Fields 'oldpc', 'basehookcount', and 'hookcount' (set by
+-** 'resethookcount') are for debug only, and it is no problem if they
+-** get arbitrary values (causes at most one wrong hook call). 'hookmask'
+-** is an atomic value. We assume that pointers are atomic too (e.g., gcc
+-** ensures that for all platforms where it runs). Moreover, 'hook' is
+-** always checked before being called (see 'luaD_hook').
++** Fields 'basehookcount' and 'hookcount' (set by 'resethookcount')
++** are for debug only, and it is no problem if they get arbitrary
++** values (causes at most one wrong hook call). 'hookmask' is an atomic
++** value. We assume that pointers are atomic too (e.g., gcc ensures that
++** for all platforms where it runs). Moreover, 'hook' is always checked
++** before being called (see 'luaD_hook').
+ */
+ LUA_API void lua_sethook (lua_State *L, lua_Hook func, int mask, int count) {
+   if (func == NULL || mask == 0) {  /* turn off hooks? */
+     mask = 0;
+     func = NULL;
+   }
+-  if (isLua(L->ci))
+-    L->oldpc = L->ci->u.l.savedpc;
+   L->hook = func;
+   L->basehookcount = count;
+   resethookcount(L);
+@@ -665,7 +662,10 @@ l_noret luaG_runerror (lua_State *L, const char *fmt, ...) {
+ void luaG_traceexec (lua_State *L) {
+   CallInfo *ci = L->ci;
+   lu_byte mask = L->hookmask;
++  const Proto *p = ci_func(ci)->p;
+   int counthook = (--L->hookcount == 0 && (mask & LUA_MASKCOUNT));
++  /* 'L->oldpc' may be invalid; reset it in this case */
++  int oldpc = (L->oldpc < p->sizecode) ? L->oldpc : 0;
+   if (counthook)
+     resethookcount(L);  /* reset count */
+   else if (!(mask & LUA_MASKLINE))
+@@ -677,15 +677,15 @@ void luaG_traceexec (lua_State *L) {
+   if (counthook)
+     luaD_hook(L, LUA_HOOKCOUNT, -1);  /* call count hook */
+   if (mask & LUA_MASKLINE) {
+-    Proto *p = ci_func(ci)->p;
+     int npc = pcRel(ci->u.l.savedpc, p);
+     int newline = getfuncline(p, npc);
+     if (npc == 0 ||  /* call linehook when enter a new function, */
+-        ci->u.l.savedpc <= L->oldpc ||  /* when jump back (loop), or when */
+-        newline != getfuncline(p, pcRel(L->oldpc, p)))  /* enter a new line */
++        ci->u.l.savedpc <= invpcRel(oldpc, p) ||  /* when jump back (loop), or when */
++        newline != getfuncline(p, oldpc))  /* enter a new line */
+       luaD_hook(L, LUA_HOOKLINE, newline);  /* call line hook */
++
++    L->oldpc = npc;  /* 'pc' of last call to line hook */
+   }
+-  L->oldpc = ci->u.l.savedpc;
+   if (L->status == LUA_YIELD) {  /* did hook yield? */
+     if (counthook)
+       L->hookcount = 1;  /* undo decrement to zero */
+diff --git a/src/ldebug.h b/src/ldebug.h
+index 0e31546..c224cc4 100644
+--- a/src/ldebug.h
++++ b/src/ldebug.h
+@@ -13,6 +13,10 @@
+ 
+ #define pcRel(pc, p)	(cast(int, (pc) - (p)->code) - 1)
+ 
++/* Active Lua function (given call info) */
++#define ci_func(ci)            (clLvalue((ci)->func))
++
++
+ #define getfuncline(f,pc)	(((f)->lineinfo) ? (f)->lineinfo[pc] : -1)
+ 
+ #define resethookcount(L)	(L->hookcount = L->basehookcount)
+diff --git a/src/ldo.c b/src/ldo.c
+index 90b695f..f66ac1a 100644
+--- a/src/ldo.c
++++ b/src/ldo.c
+@@ -382,7 +382,7 @@ int luaD_poscall (lua_State *L, CallInfo *ci, StkId firstResult, int nres) {
+       luaD_hook(L, LUA_HOOKRET, -1);
+       firstResult = restorestack(L, fr);
+     }
+-    L->oldpc = ci->previous->u.l.savedpc;  /* 'oldpc' for caller function */
++    L->oldpc = pcRel(ci->u.l.savedpc, ci_func(ci)->p);  /* 'oldpc' for caller function */
+   }
+   res = ci->func;  /* res == final position of 1st result */
+   L->ci = ci->previous;  /* back to caller */
+diff --git a/src/lstate.c b/src/lstate.c
+index 9194ac3..3573e36 100644
+--- a/src/lstate.c
++++ b/src/lstate.c
+@@ -236,6 +236,7 @@ static void preinit_thread (lua_State *L, global_State *g) {
+   L->nny = 1;
+   L->status = LUA_OK;
+   L->errfunc = 0;
++  L->oldpc = 0;
+ }
+ 
+ 
+diff --git a/src/lstate.h b/src/lstate.h
+index a469466..d75eadf 100644
+--- a/src/lstate.h
++++ b/src/lstate.h
+@@ -164,7 +164,6 @@ struct lua_State {
+   StkId top;  /* first free slot in the stack */
+   global_State *l_G;
+   CallInfo *ci;  /* call info for current function */
+-  const Instruction *oldpc;  /* last pc traced */
+   StkId stack_last;  /* last free slot in the stack */
+   StkId stack;  /* stack base */
+   UpVal *openupval;  /* list of open upvalues in this stack */
+@@ -174,6 +173,7 @@ struct lua_State {
+   CallInfo base_ci;  /* CallInfo for first level (C calling Lua) */
+   volatile lua_Hook hook;
+   ptrdiff_t errfunc;  /* current error handling function (stack index) */
++  int oldpc;  /* last pc traced */
+   int stacksize;
+   int basehookcount;
+   int hookcount;
+-- 
+2.13.3
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb b/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
index d3461b0..7d84ea6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
@@ -8,6 +8,8 @@
            file://lua.pc.in \
            file://0001-Allow-building-lua-without-readline-on-Linux.patch \
            file://CVE-2020-15888.patch \
+           file://CVE-2020-15945.patch \
+           file://0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch \
            "
 
 # if no test suite matches PV release of Lua exactly, download the suite for the closest Lua release.
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
index cc90394..6573efc 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
@@ -3,13 +3,15 @@
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d739bb9250a55c124a545b588fd76771"
 HOMEPAGE = "http://luajit.org"
 
-PV = "2.1.0~beta3"
-SRCREV = "0ad60ccbc3768fa8e3e726858adf261950edbc22"
 SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \
            file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
            file://clang.patch \
            "
 
+# Set PV to a version tag and date associated with SRCREV if it is later.
+PV = "2.1.0~beta3-200809"
+SRCREV = "94d4abcca966df2cc423e821bcacd04898f73117"
+
 S = "${WORKDIR}/git"
 
 inherit pkgconfig binconfig siteinfo
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.4.bb b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.5.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.4.bb
rename to meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.5.bb
index fa3c734..7980960 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.5.bb
@@ -10,8 +10,8 @@
 inherit python3native
 
 SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
-SRC_URI[md5sum] = "0859029d0bb54bcf7c583c55680573cb"
-SRC_URI[sha256sum] = "1df8d1978aefcbb65dc51e3666a452583f47aeaf3c5682e4c00a3b23cd805d6a"
+SRC_URI[md5sum] = "17b21729cbc61dda80b2e3dfc046319f"
+SRC_URI[sha256sum] = "c1ed28e1534304a7a4981ed59905286d1c56acd5b75755eedd184171a4a782b4"
 
 S = "${WORKDIR}/mercurial-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.1.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.1.bb
index 0f5ef70..3593242 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.1.bb
@@ -7,7 +7,7 @@
 SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1 \
            "
 
-SRCREV = "d34771cafc87b358ba421faca28facc7f8080174"
+SRCREV = "db78ac1d7716f56fc9f1b030b715f872f93964e4"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch
deleted file mode 100644
index 618ce26..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a763610719e7d7f6cdc45569b6fbfdb91bb7c87b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Jul 2019 14:30:08 -0700
-Subject: [PATCH] Do not include syscrtl.h with glibc
-
-glibc 2.30 has deprecated it see [1]
-Fixes
-sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror,-W#warnings]
-
-[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=744e829637162bb7d5029632aacf341c64b86990
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/helper/options.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/helper/options.c b/src/helper/options.c
-index 12755e010..4007e37f6 100644
---- a/src/helper/options.c
-+++ b/src/helper/options.c
-@@ -34,7 +34,7 @@
- #if IS_DARWIN
- #include <libproc.h>
- #endif
--#ifdef HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
- #if IS_WIN32 && !IS_CYGWIN
--- 
-2.22.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-bitbang-Make-bitbang_swd-extern-definition.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-bitbang-Make-bitbang_swd-extern-definition.patch
deleted file mode 100644
index d42b628..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-bitbang-Make-bitbang_swd-extern-definition.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 428f9f3c4a5be973e4c7fc1325ae9dbe41040df2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Aug 2020 17:47:35 -0700
-Subject: [PATCH] bitbang: Make bitbang_swd extern definition
-
-Fixes build with gcc10+
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jtag/drivers/bitbang.c | 1 +
- src/jtag/drivers/bitbang.h | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/jtag/drivers/bitbang.c b/src/jtag/drivers/bitbang.c
-index b5078c080..f8612aade 100644
---- a/src/jtag/drivers/bitbang.c
-+++ b/src/jtag/drivers/bitbang.c
-@@ -43,6 +43,7 @@ static int bitbang_stableclocks(int num_cycles);
- static void bitbang_swd_write_reg(uint8_t cmd, uint32_t value, uint32_t ap_delay_clk);
- 
- struct bitbang_interface *bitbang_interface;
-+const struct swd_driver bitbang_swd;
- 
- /* DANGER!!!! clock absolutely *MUST* be 0 in idle or reset won't work!
-  *
-diff --git a/src/jtag/drivers/bitbang.h b/src/jtag/drivers/bitbang.h
-index 577717ebd..0faf5d9ae 100644
---- a/src/jtag/drivers/bitbang.h
-+++ b/src/jtag/drivers/bitbang.h
-@@ -57,7 +57,7 @@ struct bitbang_interface {
- 	void (*swdio_drive)(bool on);
- };
- 
--const struct swd_driver bitbang_swd;
-+extern const struct swd_driver bitbang_swd;
- 
- extern bool swd_mode;
- 
--- 
-2.28.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
index c7d754f..4f6aaa8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -9,15 +9,13 @@
     git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl \
     git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl \
     git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink \
-    file://0001-Do-not-include-syscrtl.h-with-glibc.patch \
-    file://0001-bitbang-Make-bitbang_swd-extern-definition.patch \
 "
 
 SRCREV_FORMAT = "openocd"
-SRCREV_openocd = "ded67990255cc1e63c77832ffd6e6bef9120873d"
+SRCREV_openocd = "d46f28c2ea2611f5fbbc679a5eed253d3dcd2fe3"
 SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
-SRCREV_jimtcl = "dc4ba7770d580800634f90b67a24e077b4a26d98"
-SRCREV_libjaylink = "3322dfa5e7aa56f5b12b7f2197e3e6b850b7b66e"
+SRCREV_jimtcl = "0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"
+SRCREV_libjaylink = "9aa7a5957c07bb6e862fc1a6d3153d109c7407e4"
 
 PV = "0.10+gitr${SRCPV}"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
old mode 100755
new mode 100644
index 21050f7..a4804d1
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
@@ -1,31 +1,32 @@
-php: remove host specific info from header file
+From 1234a8ef7c5ab88e24bc5908f0ccfd55af21aa39 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Mon, 31 Aug 2020 16:03:27 +0300
+Subject: [PATCH] php: remove host specific info from header file
 
+Based on:
 https://sources.debian.org/data/main/p/php7.3/7.3.6-1/debian/patches/
         0036-php-5.4.9-fixheader.patch
 
 Upstream-Status: Inappropriate [not author]
 Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
----
-From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
-Date: Sat, 2 May 2015 10:26:56 +0200
-Subject: php-5.4.9-fixheader
-
-Make generated php_config.h constant across rebuilds.
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 ---
  configure.ac | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 433d7e6..41893d7 100644
+index 2a474ba36d..6d22a21630 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1357,7 +1357,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d`
+@@ -1323,7 +1323,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d`
  fi
  AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
  
--PHP_UNAME=`uname -a | xargs`
-+PHP_UNAME=`uname | xargs`
+-UNAME=`uname -a | xargs`
++UNAME=`uname | xargs`
+ PHP_UNAME=${PHP_UNAME:-$UNAME}
  AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
  PHP_OS=`uname | xargs`
- AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.9.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb
rename to meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.9.bb
index f74533c..abd8b16 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.9.bb
@@ -31,9 +31,10 @@
             file://0001-opcache-config.m4-enable-opcache.patch \
             file://xfail_two_bug_tests.patch \
           "
+
 S = "${WORKDIR}/php-${PV}"
-SRC_URI[md5sum] = "262c258a3b8b5699fcca89a64e58758c"
-SRC_URI[sha256sum] = "308e8f4182ec8a2767b0b1b8e1e7c69fb149b37cfb98ee4a37475e082fa9829f"
+SRC_URI[md5sum] = "e68a66c54b080d108831f6dc2e1e403d"
+SRC_URI[sha256sum] = "2e270958a4216480da7886743438ccc92b6acf32ea96fefda88d07e0a5095deb"
 
 inherit autotools pkgconfig python3native gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.12.3.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.13.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.12.3.bb
rename to meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.13.0.bb
index 21ad7a4..f2c5e2b 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.12.3.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.13.0.bb
@@ -10,7 +10,7 @@
 DEPENDS = "zlib"
 DEPENDS_append_class-target = " protobuf-native"
 
-SRCREV = "31ebe2ac71400344a5db91ffc13c4ddfb7589f92"
+SRCREV = "fde7cf7358ec7cd69e8db9be4f1fa6a5c431386a"
 
 SRC_URI = "git://github.com/protocolbuffers/protobuf.git \
            file://run-ptest \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch
new file mode 100644
index 0000000..3d861fc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch
@@ -0,0 +1,29 @@
+From ea4ca50ca9cab755f3722096158a46deec0e663a Mon Sep 17 00:00:00 2001
+From: Arthur She <arthur.she@linaro.org>
+Date: Tue, 25 Aug 2020 09:51:26 -0700
+Subject: [PATCH] src/Makefile: Fix Makefile macro error
+
+This error caused the curl library wouldn't be linked correctly.
+
+Upstream-Status: Pending
+Signed-off-by: Arthur She <arthur.she@linaro.org>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 1cdf8b0..acd04dd 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -57,7 +57,7 @@ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curltransaction
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curlmulti
+-  TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
++  TRANSPORT_LIBDEP += $(shell $(CURL_CONFIG) --libs)
+   TRANSPORT_INCLUDES += -Isrcdir/lib/curl_transport
+ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
index c1f0b78..aba6dfd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
@@ -8,6 +8,7 @@
 SRC_URI = "git://github.com/mirror/xmlrpc-c.git \
            file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
            file://0002-fix-formatting-issues.patch \
+           file://0003-src-Makefile-Fix-Makefile-macro-error.patch \
            "
 
 #Release 1.54.02
diff --git a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli/838.patch b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli/838.patch
new file mode 100644
index 0000000..98b8887
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli/838.patch
@@ -0,0 +1,48 @@
+Upstream-Status: Backport [https://github.com/google/brotli/pull/838]
+From 092446fafb4bfb81738853b7c7f76b293cd92a80 Mon Sep 17 00:00:00 2001
+From: Evgenii Kliuchnikov <eustas.ru@gmail.com>
+Date: Wed, 2 Sep 2020 10:49:49 +0200
+Subject: [PATCH] Revert "Add runtime linker path to pkg-config files (#740)"
+
+This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1.
+---
+ scripts/libbrotlicommon.pc.in | 2 +-
+ scripts/libbrotlidec.pc.in    | 2 +-
+ scripts/libbrotlienc.pc.in    | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/libbrotlicommon.pc.in b/scripts/libbrotlicommon.pc.in
+index 10ca969e..2a8cf7a3 100644
+--- a/scripts/libbrotlicommon.pc.in
++++ b/scripts/libbrotlicommon.pc.in
+@@ -7,5 +7,5 @@ Name: libbrotlicommon
+ URL: https://github.com/google/brotli
+ Description: Brotli common dictionary library
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -R${libdir} -lbrotlicommon
++Libs: -L${libdir} -lbrotlicommon
+ Cflags: -I${includedir}
+diff --git a/scripts/libbrotlidec.pc.in b/scripts/libbrotlidec.pc.in
+index e7c3124f..6f8ef2e4 100644
+--- a/scripts/libbrotlidec.pc.in
++++ b/scripts/libbrotlidec.pc.in
+@@ -7,6 +7,6 @@ Name: libbrotlidec
+ URL: https://github.com/google/brotli
+ Description: Brotli decoder library
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -R${libdir} -lbrotlidec
++Libs: -L${libdir} -lbrotlidec
+ Requires.private: libbrotlicommon >= 1.0.2
+ Cflags: -I${includedir}
+diff --git a/scripts/libbrotlienc.pc.in b/scripts/libbrotlienc.pc.in
+index 4dd0811b..2098afe2 100644
+--- a/scripts/libbrotlienc.pc.in
++++ b/scripts/libbrotlienc.pc.in
+@@ -7,6 +7,6 @@ Name: libbrotlienc
+ URL: https://github.com/google/brotli
+ Description: Brotli encoder library
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -R${libdir} -lbrotlienc
++Libs: -L${libdir} -lbrotlienc
+ Requires.private: libbrotlicommon >= 1.0.2
+ Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
rename to meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
index 32f8558..0038ba7 100644
--- a/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
@@ -6,9 +6,10 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=941ee9cd1609382f946352712a319b4b"
 
-SRC_URI = "git://github.com/google/brotli.git"
-# tag 1.0.7
-SRCREV= "d6d98957ca8ccb1ef45922e978bb10efca0ea541"
+SRC_URI = "git://github.com/google/brotli.git \
+           file://838.patch "
+# tag 1.0.9
+SRCREV= "e61745a6b7add50d380cfd7d3883dd6c62fc2c71"
 S = "${WORKDIR}/git"
 
 inherit cmake lib_package
diff --git a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
index 5214715..cffa7f5 100644
--- a/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
+++ b/meta-openembedded/meta-oe/recipes-extended/byacc/byacc.inc
@@ -12,7 +12,7 @@
 
 EXTRA_OECONF += "--program-transform-name='s,^,b,'"
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
 
 inherit autotools
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.11.0.bb b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.11.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
index a70e82e..40a8442 100644
--- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
@@ -15,8 +15,8 @@
            file://0006-libcollectdclient-Fix-string-overflow-errors.patch \
            file://0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch \
            "
-SRC_URI[md5sum] = "13b1c946f6684abe453e24b5cd80ec45"
-SRC_URI[sha256sum] = "37b10a806e34aa8570c1cafa6006c604796fae13cc2e1b3e630d33dcba9e5db2"
+SRC_URI[md5sum] = "2b23a65960bc323d065234776a542e04"
+SRC_URI[sha256sum] = "5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6"
 
 inherit autotools python3native update-rc.d pkgconfig systemd
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/238.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch
similarity index 65%
rename from meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/238.patch
rename to meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch
index 14c44e6..4305748 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/238.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch
@@ -1,6 +1,6 @@
-From 214f8c71552fc096077f0b916dad75b31eefea3d Mon Sep 17 00:00:00 2001
+From 57fd61ea5c58a4f9fcd7140b53ac6cd6e971ef47 Mon Sep 17 00:00:00 2001
 From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
-Date: Fri, 31 Jul 2020 15:26:35 +0200
+Date: Fri, 31 Jul 2020 15:16:02 +0200
 Subject: [PATCH] dlt_offline: fix build failures with gcc-10
 
 see bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=957140
@@ -14,11 +14,26 @@
 /usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_event_handler.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
 /usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_offline_logstorage.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
 ---
- src/offlinelogstorage/dlt_offline_logstorage.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ src/daemon/dlt_daemon_offline_logstorage.c              | 1 +
+ src/offlinelogstorage/dlt_offline_logstorage.h          | 4 ++--
+ src/offlinelogstorage/dlt_offline_logstorage_behavior.c | 1 +
+ tests/gtest_dlt_daemon_offline_log.cpp                  | 1 +
+ 4 files changed, 5 insertions(+), 2 deletions(-)
 
+diff --git a/src/daemon/dlt_daemon_offline_logstorage.c b/src/daemon/dlt_daemon_offline_logstorage.c
+index 0b3c14f..db9637e 100644
+--- a/src/daemon/dlt_daemon_offline_logstorage.c
++++ b/src/daemon/dlt_daemon_offline_logstorage.c
+@@ -56,6 +56,7 @@ DLT_STATIC DltReturnValue dlt_logstorage_split_ecuid(char *key,
+     return DLT_RETURN_OK;
+ }
+ 
++unsigned int g_logstorage_cache_max;
+ /**
+  * dlt_logstorage_split_ctid
+  *
 diff --git a/src/offlinelogstorage/dlt_offline_logstorage.h b/src/offlinelogstorage/dlt_offline_logstorage.h
-index b58da70..8ad84b8 100644
+index b58da70..c9bc93b 100644
 --- a/src/offlinelogstorage/dlt_offline_logstorage.h
 +++ b/src/offlinelogstorage/dlt_offline_logstorage.h
 @@ -114,9 +114,9 @@
@@ -26,10 +41,34 @@
  
  /* logstorage max cache */
 -unsigned int g_logstorage_cache_max;
-+static unsigned int g_logstorage_cache_max;
++extern unsigned int g_logstorage_cache_max;
  /* current logstorage cache size */
 -unsigned int g_logstorage_cache_size;
-+static unsigned int g_logstorage_cache_size;
++extern unsigned int g_logstorage_cache_size;
  
  typedef struct
  {
+diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
+index afbf8c4..edef482 100644
+--- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
++++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
+@@ -32,6 +32,7 @@
+ #include "dlt_offline_logstorage_behavior.h"
+ #include "dlt_offline_logstorage_behavior_internal.h"
+ 
++unsigned int g_logstorage_cache_size;
+ /**
+  * dlt_logstorage_log_file_name
+  *
+diff --git a/tests/gtest_dlt_daemon_offline_log.cpp b/tests/gtest_dlt_daemon_offline_log.cpp
+index b8965de..0bd4d5e 100644
+--- a/tests/gtest_dlt_daemon_offline_log.cpp
++++ b/tests/gtest_dlt_daemon_offline_log.cpp
+@@ -29,6 +29,7 @@ extern "C"
+ #include <fcntl.h>
+ }
+ 
++unsigned int g_logstorage_cache_max;
+ /* Begin Method: dlt_logstorage::t_dlt_logstorage_list_add*/
+ TEST(t_dlt_logstorage_list_add, normal)
+ {
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
index 3a2b405..f3fcee4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
@@ -17,8 +17,8 @@
 SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https \
     file://0002-Don-t-execute-processes-as-a-specific-user.patch \
     file://0004-Modify-systemd-config-directory.patch \
-    file://238.patch \
     file://241.patch \
+    file://245.patch \
 "
 SRCREV = "f1ac087c766827b1d0ed9c3a814b3cc052e948f2"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb b/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
index 050b7da..3e7fb2a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
@@ -13,4 +13,8 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
+
+ALTERNATIVE_${PN} = "hexedit"
+ALTERNATIVE_LINK_NAME[hexedit] = "${bindir}/hexedit"
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb
index 883a6ff..457a974 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb
@@ -39,8 +39,8 @@
         --enable-foomatic-drv-install \
         --disable-foomatic-ppd-install \
         --disable-foomatic-rip-hplip-install \
-        --with-cupsbackenddir=${libdir}/cups/backend \
-        --with-cupsfilterdir=${libdir}/cups/filter \
+        --with-cupsbackenddir=${libexecdir}/cups/backend \
+        --with-cupsfilterdir=${libexecdir}/cups/filter \
 "
 
 EXTRA_OEMAKE = "rulessystemdir=${systemd_unitdir}/system/"
@@ -52,7 +52,7 @@
     sed -i -e "s|/usr/bin/python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
 }
 
-PACKAGES += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
+PACKAGE_BEFORE_PN += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
 
 RDEPENDS_${PN} += " \
         python3\
@@ -70,15 +70,15 @@
 
 # need to snag the debug file or OE will fail on backend package
 FILES_${PN}-dbg += "\
-        ${libdir}/cups/backend/.debug \
+        ${libexecdir}/cups/backend/.debug \
         ${PYTHON_SITEPACKAGES_DIR}/.debug \
-        ${libdir}/cups/filter/.debug "
+        ${libexecdir}/cups/filter/.debug "
 
 FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
 FILES_${PN}-ppd = "${datadir}/ppd"
 FILES_${PN}-cups = "${datadir}/cups"
-FILES_${PN}-backend = "${libdir}/cups/backend"
-FILES_${PN}-filter = "${libdir}/cups/filter"
+FILES_${PN}-backend = "${libexecdir}/cups/backend"
+FILES_${PN}-filter = "${libexecdir}/cups/filter"
 FILES_${PN}-hal = "${datadir}/hal"
 
 FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
new file mode 100644
index 0000000..7c29e15
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
@@ -0,0 +1,31 @@
+From 8ce50bf569ec2d931735180079bbe507730626c8 Mon Sep 17 00:00:00 2001
+From: Yann Dirson <yann@blade-group.com>
+Date: Mon, 7 Sep 2020 18:17:21 +0200
+Subject: [PATCH] Remove buggy test confusing host and target
+
+---
+ src/libcec/cmake/CheckPlatformSupport.cmake | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
+index 1d99bd8..31dac4f 100644
+--- a/src/libcec/cmake/CheckPlatformSupport.cmake
++++ b/src/libcec/cmake/CheckPlatformSupport.cmake
+@@ -266,14 +266,6 @@ else()
+                 DESTINATION python/cec)
+       endif()
+     else()
+-      if(EXISTS "/etc/os-release")
+-        file(READ "/etc/os-release" OS_RELEASE)
+-        string(REGEX MATCH "ID(_LIKE)?=debian" IS_DEBIAN ${OS_RELEASE})
+-        if (IS_DEBIAN)
+-          SET(PYTHON_PKG_DIR "dist-packages")
+-        endif()
+-      endif()
+-
+       if (NOT PYTHON_PKG_DIR)
+         SET(PYTHON_PKG_DIR "site-packages")
+       endif()
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
index 894ee52..48be1fd 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
@@ -13,16 +13,22 @@
 SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release \
            file://0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch \
            file://0001-Enhance-reproducibility.patch \
+           file://0001-Remove-buggy-test-confusing-host-and-target.patch \
           "
 
 S = "${WORKDIR}/git"
 
 inherit cmake pkgconfig
 
-# Put client tools into a separate package
-PACKAGE_BEFORE_PN += "${PN}-tools"
-FILES_${PN}-tools = "${bindir}"
-RDEPENDS_${PN}-tools = "python3-${BPN} python3-core"
+# default config is for RaspberryPi API, use the Linux 4.10+ API by default
+PLATFORM_CMAKE_FLAGS ?= "-DHAVE_LINUX_API=1 -DHAVE_RPI_API=0"
+EXTRA_OECMAKE += "${PLATFORM_CMAKE_FLAGS}"
+
+# Put client examples into separate packages
+PACKAGE_BEFORE_PN += "${PN}-examples-python ${PN}-examples"
+FILES_${PN}-examples-python = "${bindir}/py*"
+FILES_${PN}-examples = "${bindir}"
+RDEPENDS_${PN}-examples-python = "python3-${BPN} python3-core"
 
 # Create the wrapper for python3
 PACKAGES += "python3-${BPN}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
index 5adc7d9..d5fb8e7 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
@@ -1,6 +1,3 @@
-From 82f98dcbc429bbe89a9837c533cbcbc02e77c790 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
-Date: Tue, 28 Jun 2016 12:43:31 +0100
 Subject: [PATCH] idn: fix printf() format security warnings
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -48,35 +45,37 @@
 |      ^
 
 Signed-off-by: André Draszik <adraszik@tycoint.com>
----
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+
 Upstream-Status: Pending
 
+---
  src/idn.c | 27 ++++++++++++++-------------
  1 file changed, 14 insertions(+), 13 deletions(-)
 
 diff --git a/src/idn.c b/src/idn.c
-index be1c7d1..68e4291 100644
+index f2fee11..c6e5caa 100644
 --- a/src/idn.c
 +++ b/src/idn.c
-@@ -170,7 +170,7 @@ main (int argc, char *argv[])
+@@ -169,7 +169,7 @@ main (int argc, char *argv[])
        (args_info.idna_to_unicode_given ? 1 : 0) +
        (args_info.nfkc_given ? 1 : 0) != 1)
      {
--      error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
-+      error (0, 0, "%s", _("only one of -s, -e, -d, -a, -u or -n can be specified"));
+-      error (0, 0,
++      error (0, 0, "%s",
+ 	     _("only one of -s, -e, -d, -a, -u or -n can be specified"));
        usage (EXIT_FAILURE);
      }
+@@ -183,7 +183,7 @@ main (int argc, char *argv[])
  
-@@ -185,7 +185,7 @@ main (int argc, char *argv[])
    if (!args_info.quiet_given
-       && args_info.inputs_num == 0
-       && isatty (fileno (stdin)))
+       && args_info.inputs_num == 0 && isatty (fileno (stdin)))
 -    fprintf (stderr, _("Type each input string on a line by itself, "
 +    fprintf (stderr, "%s", _("Type each input string on a line by itself, "
  		       "terminated by a newline character.\n"));
  
    do
-@@ -197,7 +197,7 @@ main (int argc, char *argv[])
+@@ -195,7 +195,7 @@ main (int argc, char *argv[])
  	  if (feof (stdin))
  	    break;
  
@@ -85,7 +84,7 @@
  	}
  
        if (strlen (line) > 0)
-@@ -215,7 +215,7 @@ main (int argc, char *argv[])
+@@ -213,7 +213,7 @@ main (int argc, char *argv[])
  	  if (!q)
  	    {
  	      free (p);
@@ -94,7 +93,7 @@
  		     _("could not convert from UTF-8 to UCS-4"));
  	    }
  
-@@ -240,7 +240,7 @@ main (int argc, char *argv[])
+@@ -238,7 +238,7 @@ main (int argc, char *argv[])
  	  if (!q)
  	    {
  	      free (r);
@@ -103,7 +102,7 @@
  		     _("could not convert from UTF-8 to UCS-4"));
  	    }
  
-@@ -277,7 +277,7 @@ main (int argc, char *argv[])
+@@ -275,7 +275,7 @@ main (int argc, char *argv[])
  	  q = stringprep_utf8_to_ucs4 (p, -1, &len);
  	  free (p);
  	  if (!q)
@@ -112,7 +111,7 @@
  		   _("could not convert from UTF-8 to UCS-4"));
  
  	  if (args_info.debug_given)
-@@ -336,7 +336,7 @@ main (int argc, char *argv[])
+@@ -334,7 +334,7 @@ main (int argc, char *argv[])
  	  r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
  	  free (q);
  	  if (!r)
@@ -121,7 +120,7 @@
  		   _("could not convert from UCS-4 to UTF-8"));
  
  	  p = stringprep_utf8_to_locale (r);
-@@ -360,7 +360,7 @@ main (int argc, char *argv[])
+@@ -358,7 +358,7 @@ main (int argc, char *argv[])
  	  q = stringprep_utf8_to_ucs4 (p, -1, NULL);
  	  free (p);
  	  if (!q)
@@ -130,7 +129,7 @@
  		   _("could not convert from UCS-4 to UTF-8"));
  
  	  if (args_info.debug_given)
-@@ -438,7 +438,7 @@ main (int argc, char *argv[])
+@@ -436,7 +436,7 @@ main (int argc, char *argv[])
  	  if (!q)
  	    {
  	      free (p);
@@ -139,7 +138,7 @@
  		     _("could not convert from UCS-4 to UTF-8"));
  	    }
  
-@@ -494,7 +494,7 @@ main (int argc, char *argv[])
+@@ -492,7 +492,7 @@ main (int argc, char *argv[])
  	  r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
  	  free (q);
  	  if (!r)
@@ -148,7 +147,7 @@
  		   _("could not convert from UTF-8 to UCS-4"));
  
  	  p = stringprep_utf8_to_locale (r);
-@@ -523,7 +523,7 @@ main (int argc, char *argv[])
+@@ -521,7 +521,7 @@ main (int argc, char *argv[])
  	      if (!q)
  		{
  		  free (p);
@@ -157,7 +156,7 @@
  			 _("could not convert from UTF-8 to UCS-4"));
  		}
  
-@@ -537,7 +537,8 @@ main (int argc, char *argv[])
+@@ -535,7 +535,8 @@ main (int argc, char *argv[])
  	  r = stringprep_utf8_nfkc_normalize (p, -1);
  	  free (p);
  	  if (!r)
@@ -167,7 +166,7 @@
  
  	  if (args_info.debug_given)
  	    {
-@@ -547,7 +548,7 @@ main (int argc, char *argv[])
+@@ -545,7 +546,7 @@ main (int argc, char *argv[])
  	      if (!q)
  		{
  		  free (r);
@@ -177,5 +176,5 @@
  		}
  
 -- 
-2.8.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.36.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb
rename to meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.36.bb
index 1057403..4c6c8fd 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.35.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.36.bb
@@ -8,8 +8,8 @@
                     file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
                     file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://lib/idna.h;endline=21;md5=37cffad24807f446a24de3e7371f20b9 \
-                    file://src/idn.c;endline=20;md5=09e97034a8877b3451cb65065fc2c06e"
+                    file://lib/idna.h;endline=21;md5=c381d797e2d7fbdace7c147b1285d076 \
+                    file://src/idn.c;endline=20;md5=7d88aa87b0494d690bdf7748fe08d536"
 DEPENDS = "virtual/libiconv autoconf-archive"
 
 inherit pkgconfig autotools gettext texinfo gtk-doc
@@ -19,8 +19,8 @@
            file://0001-idn-format-security-warnings.patch \
            "
 
-SRC_URI[md5sum] = "bef634141fe39326cb354b75e891fead"
-SRC_URI[sha256sum] = "f11af1005b46b7b15d057d7f107315a1ad46935c7fcdf243c16e46ec14f0fe1e"
+SRC_URI[md5sum] = "813c7b268d1051ca02c3610986126f38"
+SRC_URI[sha256sum] = "14b67108344d81ba844631640df77c9071d9fb0659b080326ff5424e86b14038"
 
 # command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
 # so package command into a separate package
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.5.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.6.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.5.bb
rename to meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.6.bb
index 7527298..1e22d3a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.6.bb
@@ -25,7 +25,7 @@
     gitsm://github.com/ostreedev/ostree \
     file://run-ptest \
 "
-SRCREV = "63797cb750b4b2a05c5143613d89de9df99df9df"
+SRCREV = "5d2183f63ef5ecf0e6e555c3214dd3fc17a8e5a1"
 
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb b/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
new file mode 100644
index 0000000..5db38ac
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
@@ -0,0 +1,22 @@
+# Copyright (c) 2019 Christophe Chapuis <chris.chapuis@gmail.com>
+# Copyright (c) 2019 Herman van Hazendonk <github.com@herrie.org>
+
+SUMMARY = "A very simple convenience library for handling properties and signals in C++11."
+SECTION = "libs"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+PV = "0.0.1+git${SRCPV}"
+
+SRCREV = "45863e849b39c4921d6553e6d27e267a96ac7d77"
+SRC_URI = "git://github.com/lib-cpp/${BPN}.git"
+
+S = "${WORKDIR}/git"
+
+do_configure_prepend() {
+    echo " " > ${S}/tests/CMakeLists.txt
+}
+
+inherit cmake pkgconfig
+
+RDEPENDS_${PN}-dev = ""
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.0.6.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.0.7.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis_6.0.6.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis_6.0.7.bb
index c9846c5..791e41e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.0.7.bb
@@ -17,8 +17,8 @@
            file://GNU_SOURCE.patch \
            "
 
-SRC_URI[md5sum] = "2f65e1f5610d98dd48e10eef49c79b02"
-SRC_URI[sha256sum] = "12ad49b163af5ef39466e8d2f7d212a58172116e5b441eebecb4e6ca22363d94"
+SRC_URI[md5sum] = "ac57b7188b771bbc08e8d7d6dddb3a80"
+SRC_URI[sha256sum] = "c2aaa1a4c7e72c70adedf976fdd5e1d34d395989283dab9d7840e0a304bb2393"
 
 inherit autotools-brokensep update-rc.d systemd useradd
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2006.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2006.0.bb
index 524cd9e..b6c2a99 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2006.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2006.0.bb
@@ -76,7 +76,7 @@
 PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
 PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
 PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
-PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
+PACKAGECONFIG[valgrind] = ",--without-valgrind-testbench,valgrind,"
 
 do_configure_prepend() {
     sed -i -e 's|python |python3 |g' ${S}/tests/*.sh
@@ -106,12 +106,6 @@
     # fix the abs_top_builddir
     sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
 
-    # valgrind is not compatible with arm and mips,
-    # so remove related test cases if there is no valgrind.
-    if [ x${VALGRIND} = x ]; then
-        sed -i '/udp-msgreduc-/d' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-    fi
-
     # install test-driver
     install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.1.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.2.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.1.bb
rename to meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.2.bb
index abae362..6f3685c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.2.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 = "07ab65afb10c8f8c008880a73b7b7aaedbde0e15"
+SRCREV = "01b727adf1ce3c0ed5b95299d60f62bc66d98eb5"
 
 S = "${WORKDIR}/git/python"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index 3e4ed7c..9a3a66c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -69,10 +69,10 @@
 }
 
 pkg_postinst_${PN} () {
-    if [ x"$D" != "x" ]; then
-        $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
-    fi
+    $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
+}
 
+pkg_postinst_ontarget_${PN} () {
     ${datadir}/sfcb/genSslCert.sh ${sysconfdir}/sfcb
     ${bindir}/sfcbrepos -f
 }
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
index 5193688..e3ad04f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
@@ -12,4 +12,8 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig update-alternatives
+
+ALTERNATIVE_${PN} = "candump cansend"
+ALTERNATIVE_LINK_NAME[candump] = "${bindir}/candump"
+ALTERNATIVE_LINK_NAME[cansend] = "${bindir}/cansend"
diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
index e1508af..aaa2653 100644
--- a/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
@@ -12,9 +12,16 @@
     file://0001-canutils-candump-Add-error-frame-s-handling.patch \
 "
 
+inherit update-alternatives
+
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
 
 # Busybox ip doesn't support can interface configuration, use the real thing
 RDEPENDS_${PN} += "iproute2"
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN} = "candump cansend"
+ALTERNATIVE_LINK_NAME[candump] = "${bindir}/candump"
+ALTERNATIVE_LINK_NAME[cansend] = "${bindir}/cansend"
diff --git a/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_3.1b.bb b/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_3.1b.bb
index fde0ed4..f5078e9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_3.1b.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_3.1b.bb
@@ -21,5 +21,5 @@
 do_configure_prepend() {
     # The 'compat' directory is needed for output during the build but it's
     # not automatically created when building outside the source directory.
-    mkdir ${B}/compat
+    mkdir -p ${B}/compat
 }
diff --git a/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb b/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
index ed19d1e..8e00cb3 100644
--- a/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
@@ -15,6 +15,8 @@
 
 S = "${WORKDIR}/tools"
 
+inherit update-alternatives
+
 do_compile() {
     oe_runmake
 }
@@ -25,3 +27,6 @@
 
 FILES_${PN} += "${exec_prefix}${nonarch_base_libdir}"
 FILES_${PN}-dbg += "${exec_prefix}${nonarch_base_libdir}/uml/.debug"
+
+ALTERNATIVE_${PN} = "tunctl"
+ALTERNATIVE_LINK_NAME[tunctl] = "${bindir}/tunctl"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
index 29d0f64..7ac3028 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
@@ -19,7 +19,10 @@
 	   "
 SRC_URI[sha256sum] = "95b7c01556cb6ef9819f358b314ddfeb8a4cbe862b521a3ed62f03d163154438"
 
-inherit pkgconfig
+inherit pkgconfig features_check
+
+# Depends on libepoxy
+REQUIRED_DISTRO_FEATURES = "opengl"
 
 EXTRA_OEMAKE = "STRIP= 'srcdir=${S}' -f ${S}/GNUmakefile"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.19.bb b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.20.bb
similarity index 76%
rename from meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.19.bb
rename to meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.20.bb
index e121ae9..356c78c 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.19.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.20.bb
@@ -1,10 +1,10 @@
 SUMMARY = "Jpeg 2000 implementation"
-HOMEPAGE = "https://github.com/mdadams/jasper"
+HOMEPAGE = "https://github.com/jasper-software/jasper"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a80440d1d8f17d041c71c7271d6e06eb"
 
-SRC_URI = "git://github.com/mdadams/jasper.git;protocol=https"
-SRCREV = "7d8cfd8ac16d1af9b51e5ccd781e898f0fbf57cc"
+SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https"
+SRCREV = "d10a710f31da3d079a984d35ff6cc82a853d25d7"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.79.0.bb b/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.80.0.bb
similarity index 72%
rename from meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.79.0.bb
rename to meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.80.0.bb
index a6de1f7..a861bba 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.79.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.80.0.bb
@@ -1,13 +1,13 @@
 DESCRIPTION = "A pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications"
 DEPENDS = "jpeg tiff libpng zlib"
 LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=34aa579294e8284b7b848c8d5d361e8f"
+LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=809b282cea2df68975fbe0ffe02b560f"
 
 UPSTREAM_CHECK_URI = "https://github.com/DanBloomberg/leptonica/releases"
 
 SRC_URI = "http://www.leptonica.org/source/leptonica-${PV}.tar.gz"
-SRC_URI[md5sum] = "a545654b1dae7d29e2ea346b29095f84"
-SRC_URI[sha256sum] = "045966c9c5d60ebded314a9931007a56d9d2f7a6ac39cb5cc077c816f62300d8"
+SRC_URI[md5sum] = "d640d684234442a84c9e8902f0b3ff36"
+SRC_URI[sha256sum] = "ec9c46c2aefbb960fb6a6b7f800fe39de48343437b6ce08e30a8d9688ed14ba4"
 
 EXTRA_OECONF += " \
     --without-libwebp \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-15389.patch b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-15389.patch
new file mode 100644
index 0000000..f5ce11a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2020-15389.patch
@@ -0,0 +1,51 @@
+From e8e258ab049240c2dd1f1051b4e773b21e2d3dc0 Mon Sep 17 00:00:00 2001
+From: Even Rouault <even.rouault@spatialys.com>
+Date: Sun, 28 Jun 2020 14:19:59 +0200
+Subject: [PATCH] opj_decompress: fix double-free on input directory with mix
+ of valid and invalid images (CVE-2020-15389)
+
+Fixes #1261
+
+Credits to @Ruia-ruia for reporting and analysis.
+---
+ src/bin/jp2/opj_decompress.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+ 
+--- end of original header ---
+
+CVE: CVE-2020-15389
+
+Upstream-Status: Backport [git://github.com/uclouvain/openjpeg.git]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+---
+diff --git a/src/bin/jp2/opj_decompress.c b/src/bin/jp2/opj_decompress.c
+index 7eeb0952..2634907f 100644
+--- a/src/bin/jp2/opj_decompress.c
++++ b/src/bin/jp2/opj_decompress.c
+@@ -1316,10 +1316,6 @@ static opj_image_t* upsample_image_components(opj_image_t* original)
+ int main(int argc, char **argv)
+ {
+     opj_decompress_parameters parameters;           /* decompression parameters */
+-    opj_image_t* image = NULL;
+-    opj_stream_t *l_stream = NULL;              /* Stream */
+-    opj_codec_t* l_codec = NULL;                /* Handle to a decompressor */
+-    opj_codestream_index_t* cstr_index = NULL;
+ 
+     OPJ_INT32 num_images, imageno;
+     img_fol_t img_fol;
+@@ -1393,6 +1389,10 @@ int main(int argc, char **argv)
+ 
+     /*Decoding image one by one*/
+     for (imageno = 0; imageno < num_images ; imageno++)  {
++        opj_image_t* image = NULL;
++        opj_stream_t *l_stream = NULL;              /* Stream */
++        opj_codec_t* l_codec = NULL;                /* Handle to a decompressor */
++        opj_codestream_index_t* cstr_index = NULL;
+ 
+         if (!parameters.quiet) {
+             fprintf(stderr, "\n");
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb
index 42011ef..a0740a2 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.3.1.bb
@@ -10,6 +10,7 @@
     file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \
     file://CVE-2020-6851.patch \
     file://CVE-2020-8112.patch \
+    file://CVE-2020-15389.patch \
 "
 SRCREV = "57096325457f96d8cd07bd3af04fe81d7a2ba788"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/suckless/st_0.8.4.bb b/meta-openembedded/meta-oe/recipes-graphics/suckless/st_0.8.4.bb
new file mode 100644
index 0000000..9061795
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/suckless/st_0.8.4.bb
@@ -0,0 +1,25 @@
+SECTION = "shadow"
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=04c3ca13a702147c62db90f556c5b3ca"
+SRC_URI = "http://dl.suckless.org/${BPN}/${BP}.tar.gz"
+
+inherit pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "d42d3ceceb4d6a65e32e90a5336e3d446db612c3fbd9ebc1780bc6c9a03346a6"
+
+DEPENDS += "libx11 libxft fontconfig ncurses-native"
+
+RDEPENDS_${PN} += "libx11-locale"
+
+do_compile() {
+    make INCS='-I. `pkg-config --cflags x11 fontconfig xft`' LIBS='-lm -lutil `pkg-config --libs x11 fontconfig xft`'
+}
+do_install() {
+    make install DESTDIR=${D} PREFIX=/usr TERMINFO=${D}${datadir}/terminfo
+}
+
+FILES_${PN} += " \
+    ${datadir}/terminfo \
+"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch
new file mode 100644
index 0000000..de1fa75
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch
@@ -0,0 +1,34 @@
+From b47fa9532a7090d76521603dbc818bdec100085f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Sep 2020 17:04:27 -0700
+Subject: [PATCH] include sys/time.h
+
+This provides missing definitions of timeval stuct
+
+Fixes
+| ../../../git/src/ccutil/ocrclass.h:154:7: error: member access into
+incomplete type 'struct timeval'
+|     tv->tv_usec = (millisecs.count() % 1000) * 1000;
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ccutil/ocrclass.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/ccutil/ocrclass.h b/src/ccutil/ocrclass.h
+index d39a6dd6..96395c9b 100644
+--- a/src/ccutil/ocrclass.h
++++ b/src/ccutil/ocrclass.h
+@@ -28,6 +28,8 @@
+ 
+ #include <chrono>
+ #include <ctime>
++#include <sys/time.h>
++
+ #ifdef _WIN32
+ #include <winsock2.h> // for timeval
+ #endif
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.1.bb
new file mode 100644
index 0000000..3b5032f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_4.1.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A commercial quality OCR engine "
+HOMEPAGE = "https://github.com/tesseract-ocr/tesseract"
+BUGTRACKER = "https://github.com/tesseract-ocr/tesseract/issues"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+BRANCH = "4.1"
+SRCREV = "f4ef2f2050f4c25b28bdbf0063b7d2eb30f41cf7"
+SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH} \
+           file://0001-include-sys-time.h.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "leptonica"
+
+EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir}/tessdata"
+
+RRECOMMENDS_${PN} += "tesseract-lang-eng"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
deleted file mode 100644
index 89d09a0..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A commercial quality OCR engine "
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7ea4f9a43aba9d3c849fe5c203a0ed40"
-
-BRANCH = "3.05"
-PV = "${BRANCH}.01+git${SRCPV}"
-SRCREV = "215866151e774972c9502282111b998d7a053562"
-SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "leptonica"
-
-EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
-
-
-inherit autotools pkgconfig
-
-FILES_${PN} += "${datadir}/tessdata"
-
-RRECOMMENDS_${PN} += "tesseract-lang-eng"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf
new file mode 100644
index 0000000..badb1b0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <alias>
+    <family>monospace</family>
+    <prefer>
+      <family>Source Code Pro</family>
+    </prefer>
+  </alias>
+  <alias>
+    <family>Source Code Pro</family>
+    <default>
+      <family>monospace</family>
+    </default>
+  </alias>
+</fontconfig>
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb
new file mode 100644
index 0000000..5d10195
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb
@@ -0,0 +1,29 @@
+require ttf.inc
+
+SUMMARY = "Adobe Source Code Pro"
+HOMEPAGE = "https://github.com/adobe-fonts/source-code-pro"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c7c16bdc2c96af797293d68503e5c65c"
+
+inherit allarch fontcache
+
+SRC_URI = " \
+    https://github.com/adobe-fonts/source-code-pro/releases/download/2.030R-ro/1.050R-it/source-code-pro-2.030R-ro-1.050R-it.zip \
+    file://44-source-code-pro-fonts-fontconfig.conf \
+"
+SRC_URI[sha256sum] = "da2ac159497d31b0c6d9daa8fc390fb8252e75b4a9805ace6a2c9cccaed4932e"
+S = "${WORKDIR}/source-code-pro-2.030R-ro-1.050R-it"
+
+do_install() {
+    install -d ${D}${sysconfdir}/fonts/conf.d/
+    install -m 0644 ${WORKDIR}/44-source-code-pro-fonts-fontconfig.conf ${D}${sysconfdir}/fonts/conf.d/
+
+    install -d ${D}${datadir}/fonts/truetype/
+    find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES_${PN} = " \
+    ${sysconfdir}/fonts \
+    ${datadir}/fonts \
+"
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb
index 5b406bc..57efea8 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb
@@ -24,6 +24,8 @@
     install -m 0644 LiberationSansNarrow*.ttf ${D}${datadir}/fonts/TTF/
     install -D -m 0644 ${WORKDIR}/30-0-liberation-sans-narrow.conf ${D}${sysconfdir}/conf.avail/30-${PN}-sans.conf
     install -D -m 0644 ${S}/License.txt ${D}${datadir}/licenses/${PN}/LICENSE
+    # normal liberation fonts come from ttf-liberation recipe so delete here
+    rm -rf ${D}${datadir}/fonts/truetype
 }
 
 PACKAGES = "${PN}"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
index 4a297c3..e64a935 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
+++ b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
@@ -2,7 +2,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRC_URI = "\
-	git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;tag=${BPN}-${PV};name=vk-gl-cts \
+	git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;name=vk-gl-cts;nobranch=1 \
 	git://github.com/google/amber;protocol=https;destsuffix=git/external/amber/src;name=amber;branch=main \
 	git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang \
 	git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers \
@@ -12,7 +12,7 @@
 
 S = "${WORKDIR}/git"
 
-SRCREV_FORMAT = "vk-gl-cts"
+SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.6.1.bb b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.6.1.bb
index 0e50fd9..5e0076b 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.6.1.bb
@@ -1,7 +1,8 @@
 DESCRIPTION = "OpenGL CTS"
 
 require khronos-cts.inc
-
+# opengl-es-cts-3.2.6.1
+SRCREV_vk-gl-cts = "7e023f81b4fff54b558882fe739d7c959d0a02a8"
 SRCREV_amber = "d26ee22dd7faab1845a531d410f7ec1db407402a"
 SRCREV_glslang = "c538b5d796fb24dd418fdd650c7f76e56bcc3dd8"
 SRCREV_spirv-headers = "e4322e3be589e1ddd44afb20ea842a977c1319b8"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.2.3.0.bb b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.2.3.2.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.2.3.0.bb
rename to meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.2.3.2.bb
index 77064d4..f07b12d 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.2.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.2.3.2.bb
@@ -1,7 +1,8 @@
 DESCRIPTION = "Vulkan CTS"
 
 require khronos-cts.inc
-
+# vulkan-cts-1.2.3.2
+SRCREV_vk-gl-cts = "5cd2240b60825fbbf6bd9ddda6af176ee3100c70"
 SRCREV_amber = "a40bef4dba98d2d80b48e5a940d8574fbfceb197"
 SRCREV_glslang = "b5f003d7a3ece37db45578a8a3140b370036fc64"
 SRCREV_spirv-headers = "f8bf11a0253a32375c32cad92c841237b96696c0"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.44.bb b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.44.bb
index 6cad97f..9131c75 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.44.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_5.44.bb
@@ -1,5 +1,5 @@
 SUMMARY = "X screen saver and locker"
-
+HOMEPAGE = "https://www.jwz.org/xscreensaver/"
 LICENSE = "BSD-0-Clause"
 LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=2b97002f72fbfc9329b4336e798f2463"
 
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
index 3687c26..2b5ebcc 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -20,15 +20,16 @@
 # if you have older kernel than that you need to remove it from PACKAGECONFIG
 PACKAGECONFIG ??= "bpf firmware vm"
 PACKAGECONFIG_remove_x86 = "bpf"
-PACKAGECONFIG_remove_arm = "bpf"
+PACKAGECONFIG_remove_arm = "bpf vm"
 # host ptrace.h is used to compile BPF target but mips ptrace.h is needed
 # progs/loop1.c:21:9: error: incomplete definition of type 'struct user_pt_regs'
 # m = PT_REGS_RC(ctx);
-PACKAGECONFIG_remove_qemumips = "bpf"
+# vm tests need libhugetlbfs starting 5.8+ (https://lkml.org/lkml/2020/4/22/1654)
+PACKAGECONFIG_remove_qemumips = "bpf vm"
 
 PACKAGECONFIG[bpf] = ",,elfutils libcap libcap-ng rsync-native,"
 PACKAGECONFIG[firmware] = ",,libcap, bash"
-PACKAGECONFIG[vm] = ",,libcap,libgcc bash"
+PACKAGECONFIG[vm] = ",,libcap libhugetlbfs,libgcc bash"
 
 do_patch[depends] += "virtual/kernel:do_shared_workdir"
 
@@ -49,10 +50,13 @@
     AR="${AR}" \
     LD="${LD}" \
     DESTDIR="${D}" \
+    MACHINE="${ARCH}" \
 '
 
 KERNEL_SELFTEST_SRC ?= "Makefile \
                         include \
+                        kernel \
+                        lib \
                         tools \
                         scripts \
                         arch \
diff --git a/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.1.bb b/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.2.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.1.bb
rename to meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.2.bb
index c691400..f59e6d1 100644
--- a/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.1.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.11.2.bb
@@ -8,8 +8,8 @@
 inherit autotools update-alternatives
 
 SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz"
-SRC_URI[md5sum] = "df978fd0324f60a6ff45f686fe269fdc"
-SRC_URI[sha256sum] = "73c881f146e329ac54962766760fd62cb8bdff376cd6c2f5772eecc1570e1611"
+SRC_URI[md5sum] = "b9b71c72e40fdc4db9b4ffb81fc3bebc"
+SRC_URI[sha256sum] = "00fb7d68b7599cc41ab151051c06c01e9500540183d8aa72116cb9c742bd6d5f"
 
 EXTRA_OECONF += "--bindir=${base_bindir}"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.16.1.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.18.0.bb
similarity index 73%
rename from meta-openembedded/meta-oe/recipes-support/asio/asio_1.16.1.bb
rename to meta-openembedded/meta-oe/recipes-support/asio/asio_1.18.0.bb
index f381d12..7709075 100644
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.16.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.18.0.bb
@@ -17,11 +17,13 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=de86c8210a433f72bd3cc98e797a6084"
 
-SRC_URI[md5sum] = "569f4b082c652ae8a8ad94fb470016f9"
-SRC_URI[sha256sum] = "e271db76dbbcda9835ed1c9c94deb2ba3f4589c3ebcaa71d99ac694b8d62638c"
+SRC_URI[md5sum] = "ed1f2dc4cf24aa2da8361179ade01682"
+SRC_URI[sha256sum] = "9d539e7c09aa6394d512c433c5601c1f26dc4975f022ad7d5e8e57c3b635b370"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
 
 PACKAGECONFIG ??= "boost"
 
-PACKAGECONFIG[boost] = "--with-boost,--without-boost,boost"
+PACKAGECONFIG[boost] = "--with-boost=${STAGING_LIBDIR},--without-boost,boost"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb b/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
new file mode 100644
index 0000000..90bd560
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
@@ -0,0 +1,29 @@
+SUMMARY = "copy-paste for the Linux console"
+DESCRIPTION = "Consolation is a daemon that provides copy-paste and scrolling \
+support to the Linux console. It is based on the libinput library and \
+supports all pointer devices and settings provided by this library. Similar \
+software include gpm and jamd."
+HOMEPAGE = "https://salsa.debian.org/consolation-team/consolation"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=73ca626e1d9048abfc7d599370650827"
+
+DEPENDS = " \
+    libevdev \
+    libinput \
+    udev \
+"
+
+SRC_URI = "git://salsa.debian.org/consolation-team/consolation.git"
+SRCREV = "4581eaece6e49fa2b687efbdbe23b2de452e7902"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig systemd
+
+do_install_append() {
+    install -d ${D}${systemd_system_unitdir}
+    install -m 644 ${B}/consolation.service ${D}${systemd_system_unitdir}
+}
+
+SYSTEMD_SERVICE_${PN} = "consolation.service"
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.1.bb b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.1.bb
new file mode 100644
index 0000000..9b3adcf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.1.bb
@@ -0,0 +1,261 @@
+SUMMARY = "Emacs is the extensible, customizable, self-documenting real-time display editor"
+HOMEPAGE = "https://www.gnu.org/software/emacs/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "https://ftp.gnu.org/pub/gnu/emacs/emacs-${PV}.tar.xz"
+
+SRC_URI_append_class-target = " file://usemake-docfile-native.patch"
+
+SRC_URI[sha256sum] = "4a4c128f915fc937d61edfc273c98106711b540c9be3cd5d2e2b9b5b2f172e41"
+
+PACKAGECONFIG[gnutls] = "--with-gnutls=yes,--with-gnutls=no,gnutls"
+PACKAGECONFIG[kerberos] = "--with-kerberos=yes,--with-kerberos=no,krb5"
+PACKAGECONFIG[libgmp] = "--with-libgmp=yes,--with-libgmp=no,gmp"
+
+PACKAGECONFIG ??= "gnutls kerberos libgmp"
+
+# We could use --without-all but its better to
+# split it into several packages (size of minimal doesnt change)
+EXTRA_OECONF = " --with-x=no --with-dumping=none"
+
+DEPENDS = "ncurses"
+DEPENDS_append_class-target = " emacs-native"
+
+inherit autotools mime-xdg
+
+
+do_compile_class-native (){
+    cd ${B}/lib-src
+    oe_runmake make-docfile
+    oe_runmake make-fingerprint
+}
+do_install_class-native(){
+    install -d ${D}${bindir}
+    install -m 755 ${B}/lib-src/make-docfile ${D}/${bindir}/
+    install -m 755 ${B}/lib-src/make-fingerprint ${D}/${bindir}/
+}
+
+
+do_install_append(){
+    # Delete systemd stuff, extend using DISTRO_FEATURES?
+    rm -rf ${D}/${libdir}
+    # Extra stuff which isnt needed
+    rm -rf ${D}/${datadir}/metainfo
+    rm -rf ${D}/${datadir}/info
+    # Emacs copies files to ${D} while building, which were unpacked
+    # by a different user, we need to restore those
+    chown -R root:root ${D}${datadir}
+}
+
+
+# Use a similar strategy to how we build python:
+# Create three packages
+# minimal - A working lisp based text editor
+# base - What would probably work for most
+# full - A fully working emacs
+# The lists of files are long but are worth it
+# Installing "emacs" installs the base package
+PACKAGE_BEFORE_PN = "${PN}-minimal ${PN}-base ${PN}-full"
+RPROVIDES_${PN}-base = "${PN}"
+RDEPENDS_${PN}-base_class-target = "${PN}-minimal"
+RDEPENDS_${PN}-full_class-target = "${PN}"
+
+
+# A minimal version of emacs that works
+FILES_${PN}-minimal = " \
+    ${datadir}/${BPN}/${PV}/lisp/loadup.el \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/byte-run.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/backquote.elc \
+    ${datadir}/${BPN}/${PV}/lisp/subr.elc \
+    ${datadir}/${BPN}/${PV}/lisp/version.elc \
+    ${datadir}/${BPN}/${PV}/lisp/widget.elc \
+    ${datadir}/${BPN}/${PV}/lisp/custom.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map-ynp.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/mule.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/mule-conf.elc \
+    ${datadir}/${BPN}/${PV}/lisp/env.elc \
+    ${datadir}/${BPN}/${PV}/lisp/format.elc \
+    ${datadir}/${BPN}/${PV}/lisp/bindings.elc \
+    ${datadir}/${BPN}/${PV}/lisp/window.elc \
+    ${datadir}/${BPN}/${PV}/lisp/files.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/macroexp.elc \
+    ${datadir}/${BPN}/${PV}/lisp/cus-face.elc \
+    ${datadir}/${BPN}/${PV}/lisp/faces.elc \
+    ${datadir}/${BPN}/${PV}/lisp/button.elc \
+    ${datadir}/${BPN}/${PV}/lisp/loaddefs.el \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/nadvice.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-preloaded.elc \
+    ${datadir}/${BPN}/${PV}/lisp/obarray.elc \
+    ${datadir}/${BPN}/${PV}/lisp/abbrev.elc \
+    ${datadir}/${BPN}/${PV}/lisp/simple.elc \
+    ${datadir}/${BPN}/${PV}/lisp/jka-cmpr-hook.elc \
+    ${datadir}/${BPN}/${PV}/lisp/epa-hook.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/mule-cmds.elc \
+    ${datadir}/${BPN}/${PV}/lisp/case-table.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/charprop.el \
+    ${datadir}/${BPN}/${PV}/lisp/international/characters.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/charscript.elc \
+    ${datadir}/${BPN}/${PV}/lisp/composite.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/chinese.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/cyrillic.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/indian.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/sinhala.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/english.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/ethiopic.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/european.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/czech.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/slovak.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/romanian.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/greek.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/hebrew.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/cp51932.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/eucjp-ms.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/japanese.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/korean.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/lao.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/tai-viet.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/thai.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/tibetan.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/vietnamese.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/misc-lang.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/utf-8-lang.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/georgian.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/khmer.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/burmese.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/cham.elc \
+    ${datadir}/${BPN}/${PV}/lisp/indent.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-generic.elc \
+    ${datadir}/${BPN}/${PV}/lisp/minibuffer.elc \
+    ${datadir}/${BPN}/${PV}/lisp/frame.elc \
+    ${datadir}/${BPN}/${PV}/lisp/startup.elc \
+    ${datadir}/${BPN}/${PV}/lisp/term/tty-colors.elc \
+    ${datadir}/${BPN}/${PV}/lisp/font-core.elc \
+    ${datadir}/${BPN}/${PV}/lisp/facemenu.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/syntax.elc \
+    ${datadir}/${BPN}/${PV}/lisp/font-lock.elc \
+    ${datadir}/${BPN}/${PV}/lisp/jit-lock.elc \
+    ${datadir}/${BPN}/${PV}/lisp/mouse.elc \
+    ${datadir}/${BPN}/${PV}/lisp/select.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/timer.elc \
+    ${datadir}/${BPN}/${PV}/lisp/isearch.elc \
+    ${datadir}/${BPN}/${PV}/lisp/rfn-eshadow.elc \
+    ${datadir}/${BPN}/${PV}/lisp/menu-bar.elc \
+    ${datadir}/${BPN}/${PV}/lisp/tab-bar.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp.elc \
+    ${datadir}/${BPN}/${PV}/lisp/textmodes/page.elc \
+    ${datadir}/${BPN}/${PV}/lisp/register.elc \
+    ${datadir}/${BPN}/${PV}/lisp/textmodes/paragraphs.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/prog-mode.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp-mode.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/elisp-mode.elc \
+    ${datadir}/${BPN}/${PV}/lisp/textmodes/text-mode.elc \
+    ${datadir}/${BPN}/${PV}/lisp/textmodes/fill.elc \
+    ${datadir}/${BPN}/${PV}/lisp/newcomment.elc \
+    ${datadir}/${BPN}/${PV}/lisp/replace.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/tabulated-list.elc \
+    ${datadir}/${BPN}/${PV}/lisp/buff-menu.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/float-sup.elc \
+    ${datadir}/${BPN}/${PV}/lisp/vc/vc-hooks.elc \
+    ${datadir}/${BPN}/${PV}/lisp/vc/ediff-hook.elc \
+    ${datadir}/${BPN}/${PV}/lisp/uniquify.elc \
+    ${datadir}/${BPN}/${PV}/lisp/electric.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eldoc.elc \
+    ${datadir}/${BPN}/${PV}/lisp/cus-start.elc \
+    ${datadir}/${BPN}/${PV}/lisp/tooltip.elc \
+    ${datadir}/${BPN}/${PV}/lisp/simple.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/regexp-opt.elc \
+    ${datadir}/${BPN}/${PV}/lisp/term/xterm.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/bytecomp.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cconv.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/gv.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/byte-opt.elc \
+    ${datadir}/${BPN}/${PV}/lisp/image.elc \
+    ${datadir}/${BPN}/${PV}/lisp/ldefs-boot.el \
+    ${datadir}/${BPN}/${PV}/lisp/help.elc \
+    ${datadir}/${BPN}/${PV}/lisp/international/uni*.el \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/vc/warnings.elc \
+    ${datadir}/${BPN}/${PV}/etc/charsets/ \
+    ${bindir}/emacs* \
+    ${prefix}/libexec \
+"
+
+
+# What works for "most" is relative, but this can be easily extended if needed
+FILES_${PN}-base = " \
+    ${datadir}/${BPN}/${PV}/etc/srecode \
+    ${datadir}/${BPN}/${PV}/etc/e \
+    ${datadir}/${BPN}/${PV}/etc/forms \
+    ${datadir}/${BPN}/${PV}/lisp/cedet \
+    ${datadir}/${BPN}/${PV}/site-lisp/ \
+    ${datadir}/${BPN}/${PV}/lisp/subdirs.el \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-mode.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-defs.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-vars.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-engine.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-styles.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-fonts.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-cmds.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-align.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-menus.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-guess.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-lib.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-macs.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/pcase.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/inline.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-seq.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/easymenu.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/python* \
+    ${datadir}/${BPN}/${PV}/lisp/ansi-color.elc \
+    ${datadir}/${BPN}/${PV}/lisp/comint.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/ring.elc \
+    ${datadir}/${BPN}/${PV}/lisp/json.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/seq.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/subr-x.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/seq.elc \
+    ${datadir}/${BPN}/${PV}/lisp/net/tramp-sh.elc \
+    ${datadir}/${BPN}/${PV}/lisp/net/tramp.elc \
+    ${datadir}/${BPN}/${PV}/lisp/net/tramp-compat.elc \
+    ${datadir}/${BPN}/${PV}/lisp/auth-source.elc \
+    ${datadir}/${BPN}/${PV}/lisp/password-cache.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eieio.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eieio-core.elc \
+    ${datadir}/${BPN}/${PV}/lisp/format-spec.elc \
+    ${datadir}/${BPN}/${PV}/lisp/ls-lisp.elc \
+    ${datadir}/${BPN}/${PV}/lisp/calendar/parse-time.elc \
+    ${datadir}/${BPN}/${PV}/lisp/calendar/iso8601.elc \
+    ${datadir}/${BPN}/${PV}/lisp/calendar/time-date.elc \
+    ${datadir}/${BPN}/${PV}/lisp/shell.elc \
+    ${datadir}/${BPN}/${PV}/lisp/pcomplete.elc \
+    ${datadir}/${BPN}/${PV}/lisp/net/tramp-integration.elc \
+    ${datadir}/${BPN}/${PV}/lisp/files-x.elc \
+    ${datadir}/${BPN}/${PV}/lisp/net/trampver.elc \
+    ${datadir}/${BPN}/${PV}/lisp/net/tramp-loaddefs.el \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/*perl* \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/smie.elc \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/*asm* \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/cpp* \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/make* \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/sh-script* \
+    ${datadir}/${BPN}/${PV}/etc/themes/adwaita-theme.el \
+    ${datadir}/${BPN}/${PV}/etc/themes/wheatgrass-theme.el \
+    ${datadir}/${BPN}/${PV}/etc/themes/deeper-blue-theme.el \
+    ${datadir}/${BPN}/${PV}/etc/themes/light-blue-theme.el \
+    ${datadir}/${BPN}/${PV}/etc/themes/misterioso-theme.el \
+    ${datadir}/${BPN}/${PV}/etc/themes/tango-theme.el \
+    ${datadir}/${BPN}/${PV}/etc/themes/wombat-theme.el \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/prog* \
+    ${datadir}/${BPN}/${PV}/lisp/progmodes/executable* \
+"
+
+# Restore FILES for the full package to catch everything left
+FILES_${PN}-full = "${FILES_${PN}}"
+FILES_${PN}-full_append = " ${datadir}/icons"
+
+
+# The following does NOT build a native emacs.
+# It only builds some parts of it that are
+# required to by the build for target emacs.
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch b/meta-openembedded/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
new file mode 100644
index 0000000..cc0b05c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
@@ -0,0 +1,85 @@
+Upstream-Status: Inappropriate  [OE-Specific]
+
+When building emacs, it builds some tools for the HOST
+that are then used to build for target, such as
+make-fingerprint and make-docfile, this needs to be
+adapted to be used by bitbake, otherwise the compiled
+executables arent compatible with the HOST.
+
+Use the above mentioned tools provided by the native
+version of the recipe instead.
+
+Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
+
+Index: emacs-27.1/src/Makefile.in
+===================================================================
+--- emacs-27.1.orig/src/Makefile.in
++++ emacs-27.1/src/Makefile.in
+@@ -472,7 +472,7 @@ ifeq ($(CHECK_STRUCTS),true)
+ pdumper.o: dmpstruct.h
+ endif
+ dmpstruct.h: $(srcdir)/dmpstruct.awk
+-dmpstruct.h: $(libsrc)/make-fingerprint$(EXEEXT) $(dmpstruct_headers)
++dmpstruct.h:  $(dmpstruct_headers)
+ 	$(AM_V_GEN)POSIXLY_CORRECT=1 awk -f $(srcdir)/dmpstruct.awk \
+ 		$(dmpstruct_headers) > $@
+ 
+@@ -566,8 +566,7 @@ ${lispintdir}/characters.elc: ${charscri
+ ## Strictly speaking, emacs does not depend directly on all of $lisp,
+ ## since not all pieces are used on all platforms.  But DOC depends
+ ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
+-emacs$(EXEEXT): temacs$(EXEEXT) \
+-                lisp.mk $(etc)/DOC $(lisp) \
++emacs$(EXEEXT): lisp.mk $(etc)/DOC $(lisp) \
+                 $(lispsource)/international/charprop.el ${charsets}
+ ifeq ($(DUMPING),unexec)
+ 	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
+@@ -596,15 +595,15 @@ endif
+ ## for the first time, this prevents any variation between configurations
+ ## in the contents of the DOC file.
+ ##
+-$(etc)/DOC: lisp.mk $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp)
++$(etc)/DOC: lisp.mk $(obj) $(lisp)
+ 	$(AM_V_GEN)$(MKDIR_P) $(etc)
+ 	$(AM_V_at)rm -f $(etc)/DOC
+-	$(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \
++	make-docfile -d $(srcdir) \
+ 	  $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC
+-	$(AM_V_at)$(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) \
++	make-docfile -a $(etc)/DOC -d $(lispsource) \
+ 	  $(shortlisp)
+ 
+-$(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \
++$(libsrc)/make-fingerprint$(EXEEXT): \
+   $(lib)/libgnu.a
+ 	$(MAKE) -C $(dir $@) $(notdir $@)
+ 
+@@ -622,8 +621,8 @@ am__v_GLOBALS_ = $(am__v_GLOBALS_@AM_DEF
+ am__v_GLOBALS_0 = @echo "  GEN     " globals.h;
+ am__v_GLOBALS_1 =
+ 
+-gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
+-	$(AM_V_GLOBALS)$(libsrc)/make-docfile -d $(srcdir) -g $(obj) > globals.tmp
++gl-stamp: $(GLOBAL_SOURCES)
++	make-docfile -d $(srcdir) -g $(obj) > globals.tmp
+ 	$(AM_V_at)$(top_srcdir)/build-aux/move-if-change globals.tmp globals.h
+ 	$(AM_V_at)echo timestamp > $@
+ 
+@@ -637,7 +636,7 @@ $(LIBEGNU_ARCHIVE): $(config_h)
+ 	$(MAKE) -C $(dir $@) all
+ 
+ ifeq ($(HAVE_PDUMPER),yes)
+-  MAKE_PDUMPER_FINGERPRINT = $(libsrc)/make-fingerprint$(EXEEXT)
++  MAKE_PDUMPER_FINGERPRINT = make-fingerprint
+ else
+   MAKE_PDUMPER_FINGERPRINT =
+ endif
+@@ -647,7 +646,7 @@ endif
+ ## This goes on to affect various things, and the emacs binary fails
+ ## to start if Vinstallation_directory has the wrong value.
+ temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \
+-  $(charsets) $(charscript) $(MAKE_PDUMPER_FINGERPRINT)
++  $(charsets) $(charscript)
+ 	$(AM_V_CCLD)$(CC) -o $@.tmp \
+ 	  $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
+ 	  $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES)
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.2.0.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.2.0.bb
index 6a97c24..d446a31 100644
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.2.0.bb
@@ -38,7 +38,7 @@
 
 X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
 PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
-PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon"
 PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
 PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
 PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.8.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
rename to meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.8.bb
index b7b7839..662777b 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.8.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
 
-SRCREV = "db7aa547abb5abdd558587a15502584cbc825438"
+SRCREV = "180bfa10d7cb38e8b3784d60943d50e8fcef0dcb"
 SRC_URI = "git://github.com/gperftools/gperftools \
            file://0001-Support-Atomic-ops-on-clang.patch \
            file://0001-fix-build-with-musl-libc.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.105.bb b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.105.bb
rename to meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb
index 70807de..0249d09 100644
--- a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.105.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb
@@ -7,8 +7,8 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
            "
-SRC_URI[md5sum] = "ce91e46d3abc1d720566b13298fbc367"
-SRC_URI[sha256sum] = "aa20c535cf08f1576bebad97cc6159ca57c68bc43acfc9a296e4e9faf041097e"
+SRC_URI[md5sum] = "0925d25bc455047b01d4fe9814d30173"
+SRC_URI[sha256sum] = "4e74838baf5437e95ae17aa3efb48bd0621f483bff4424f6255fcf327ff80765"
 
 inherit autotools
 
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Ask-for-python3-specifically.patch b/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Ask-for-python3-specifically.patch
deleted file mode 100644
index 6153bde..0000000
--- a/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Ask-for-python3-specifically.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 08aca4816cc798fce58b6235c26585a0063fa8af Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 26 Nov 2019 10:43:49 -0800
-Subject: [PATCH] Ask for python3 specifically
-
-python2 is on its way out
-
-Upstream-Status: Submitted [https://github.com/hishamhm/htop/pull/968]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- scripts/MakeHeader.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/MakeHeader.py b/scripts/MakeHeader.py
-index 7c48fdd..7a7586d 100755
---- a/scripts/MakeHeader.py
-+++ b/scripts/MakeHeader.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- import os, sys, string, io
- try:
-    from StringIO import StringIO
--- 
-2.24.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/files/htop-gcc10.patch b/meta-openembedded/meta-oe/recipes-support/htop/files/htop-gcc10.patch
deleted file mode 100644
index 5be0627..0000000
--- a/meta-openembedded/meta-oe/recipes-support/htop/files/htop-gcc10.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix build with -fno-common
-
-Upstream-Staus: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/CRT.h
-+++ b/CRT.h
-@@ -140,7 +140,7 @@ extern const char **CRT_treeStr;
- 
- extern int CRT_delay;
- 
--int* CRT_colors;
-+extern int* CRT_colors;
- 
- extern int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT];
- 
-@@ -150,13 +150,13 @@ extern int CRT_scrollHAmount;
- 
- extern int CRT_scrollWheelVAmount;
- 
--char* CRT_termType;
-+extern char* CRT_termType;
- 
- // TODO move color scheme to Settings, perhaps?
- 
- extern int CRT_colorScheme;
- 
--void *backtraceArray[128];
-+extern void *backtraceArray[128];
- 
- #if HAVE_SETUID_ENABLED
- 
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_3.0.1.bb
similarity index 61%
rename from meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb
rename to meta-openembedded/meta-oe/recipes-support/htop/htop_3.0.1.bb
index c608077..d677e36 100644
--- a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/htop/htop_3.0.1.bb
@@ -1,28 +1,25 @@
 SUMMARY = "Interactive process viewer"
-HOMEPAGE = "http://hisham.hm/htop"
+HOMEPAGE = "https://htop.dev"
 SECTION = "console/utils"
 LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4099d367cd5e59b6d4fc1ee33accb891"
 
 DEPENDS = "ncurses"
 
-SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
+SRC_URI = "git://github.com/htop-dev/htop.git \
            file://0001-Use-pkg-config.patch \
-           file://0001-Ask-for-python3-specifically.patch \
-           file://htop-gcc10.patch \
            "
-SRC_URI[md5sum] = "0d816b6beed31edc75babcfbf863ffa8"
-SRC_URI[sha256sum] = "d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57"
+SRCREV = "dace850fa6e27b5626115b366059258cfe4d60c9"
+
+S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
 
-PACKAGECONFIG ??= "proc \
-                   cgroup \
+PACKAGECONFIG ??= "cgroup \
                    taskstats \
                    unicode \
                    linux-affinity \
                    delayacct"
-PACKAGECONFIG[proc] = "--enable-proc,--disable-proc"
 PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
 PACKAGECONFIG[cgroup] = "--enable-cgroup,--disable-cgroup"
 PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
@@ -32,7 +29,3 @@
 PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
 PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
 PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
-
-do_configure_prepend () {
-    rm -rf ${S}/config.h
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
index 035a11c..42b9210 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -5,8 +5,8 @@
 LICENSE = "GPL-2.0+"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
 
-PV = "0.336"
-SRCREV = "e0e15bc7930f6d7befa4e7060fd03cc4935f6190"
+PV = "0.339"
+SRCREV = "1cd8ee29eb2dcb954961be008b96cfbf982f0700"
 SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
index 804faf0..70cb237 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
@@ -46,7 +46,7 @@
 ALTERNATIVE_PRIORITY = "100"
 
 ALTERNATIVE_${PN} = "animate compare composite conjure convert display \
-    identify import mogrify montage stream"
+    identify import magick-script mogrify montage stream"
 
 ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7"
 ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7"
@@ -56,12 +56,13 @@
 ALTERNATIVE_TARGET[display] = "${bindir}/display.im7"
 ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7"
 ALTERNATIVE_TARGET[import] = "${bindir}/import.im7"
+ALTERNATIVE_TARGET[magick-script] = "${bindir}/magick-script.im7"
 ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7"
 ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7"
 ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7"
 
 ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \
-    convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1"
+    convert.1 display.1 identify.1 import.1 magick-script.1 mogrify.1 montage.1 stream.1"
 
 ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1"
 ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1"
@@ -79,6 +80,8 @@
 ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1"
 ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1"
 ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1"
+ALTERNATIVE_LINK_NAME[magick-script.1] = "${mandir}/man1/magick-script.1"
+ALTERNATIVE_TARGET[magick-script.1] = "${mandir}/man1/magick-script.im7.1"
 ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1"
 ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1"
 ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1"
diff --git a/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter/ldflags.patch b/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter/ldflags.patch
new file mode 100644
index 0000000..ceda839
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter/ldflags.patch
@@ -0,0 +1,16 @@
+Append to LDFLAGS so it can respect the LDFLAGS passed from environment. This helps
+with using propert GNU_HASH settings during link on mips/arm
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -24,7 +24,7 @@ CFLAGS = -Wall -Wextra -O \
+ 	 -DCONFIG_SSL_CAPATH='"$(SSLCAPATH)"' \
+ 	 -DCONFIG_SSL_CAFILE='"$(SSLCAFILE)"' \
+ 	 $(INCDIRS) $(MYCFLAGS)
+-LDFLAGS = $(LIBDIRS) $(MYLDFLAGS)
++LDFLAGS += $(LIBDIRS) $(MYLDFLAGS)
+ LIBS = -lm -ldl $(LIBLUA) $(LIBPCRE) $(LIBSSL) $(LIBCRYPTO) $(MYLIBS)
+ 
+ MAN1 = imapfilter.1
diff --git a/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter_2.6.16.bb b/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter_2.6.16.bb
index 7d4e12d..86553b5 100644
--- a/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter_2.6.16.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imapfilter/imapfilter_2.6.16.bb
@@ -2,7 +2,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ccca8573ead8e965c130b6b2946a36ab"
 
-SRC_URI = "https://codeload.github.com/lefcha/${BPN}/tar.gz/v${PV};downloadfilename=v${PV}.tar.gz"
+SRC_URI = "https://codeload.github.com/lefcha/${BPN}/tar.gz/v${PV};downloadfilename=${BP}.tar.gz \
+           file://ldflags.patch \
+"
 SRC_URI[sha256sum] = "90af9bc9875e03fb5a09a3233287b74dd817867cb18ec9ff52fead615755563e"
 
 DEPENDS= "openssl lua libpcre"
@@ -15,3 +17,5 @@
     # No need for manuals at this point, MANDIR is hardcoded to depend on prefix
     rm -rf ${D}${prefix}/man
 }
+
+ASNEEDED = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.11.bb b/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.11.bb
new file mode 100644
index 0000000..4f10f35
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.11.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Little cms is a small-footprint, speed optimized color management engine"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9391499b030def18e7bb25bab4bee052"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
+SRC_URI[md5sum] = "598dae499e58f877ff6788254320f43e"
+SRC_URI[sha256sum] = "dc49b9c8e4d7cdff376040571a722902b682a795bf92985a85b48854c270772e"
+
+DEPENDS = "tiff"
+
+BBCLASSEXTEND = "native"
+
+S = "${WORKDIR}/lcms2-${PV}"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.9.bb b/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.9.bb
deleted file mode 100644
index be72d76..0000000
--- a/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.9.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Little cms is a small-footprint, speed optimized color management engine"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
-SRC_URI[md5sum] = "8de1b7724f578d2995c8fdfa35c3ad0e"
-SRC_URI[sha256sum] = "48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20"
-
-DEPENDS = "tiff"
-
-BBCLASSEXTEND = "native"
-
-S = "${WORKDIR}/lcms2-${PV}"
-
-inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb
index f638848..6ce318d 100644
--- a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb
@@ -4,11 +4,11 @@
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
 
-SRC_URI = "https://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
-SRC_URI[md5sum] = "05b1f7511c93980c385ebe11bd3c93fa"
-SRC_URI[sha256sum] = "9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce"
+SRC_URI = "git://gitlab.com/libeigen/eigen.git;protocol=http;nobranch=1"
 
-S = "${WORKDIR}/eigen-eigen-323c052e1731"
+SRCREV = "21ae2afd4edaa1b69782c67a54182d34efe43f9c"
+
+S = "${WORKDIR}/git"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.4.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
rename to meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.4.bb
index a6320da..a9a4628 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.4.bb
@@ -2,8 +2,8 @@
 
 DEPENDS += "autoconf-archive-native"
 
-SRC_URI[md5sum] = "d4826720a8de13379436f9c207237bc0"
-SRC_URI[sha256sum] = "0ad080d1eb89c422cf13001293ffa72869ca13028e85dab5f6b3ba90f88da46d"
+SRC_URI[md5sum] = "064c2627397e6641c52de09a26951112"
+SRC_URI[sha256sum] = "f1cda2789e6a13a92aefc012a76e5a7cc57a1b402d66f71df8719ee314b67699"
 
 # enable cxx bindings
 PACKAGECONFIG ?= "cxx"
diff --git a/meta-openembedded/meta-oe/recipes-support/liburing/liburing_0.7.bb b/meta-openembedded/meta-oe/recipes-support/liburing/liburing_0.7.bb
new file mode 100644
index 0000000..3a1eaef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liburing/liburing_0.7.bb
@@ -0,0 +1,24 @@
+SUMMARY = "This is the io_uring library, liburing."
+DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \
+instances, and also a simplified interface for applications that don't need \
+(or want) to deal with the full kernel side implementation."
+HOMEPAGE = "https://github.com/axboe/liburing"
+BUGTRACKER = "https://github.com/axboe/liburing/issues"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 | MIT"
+LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=d51b5805e2a675685e6a66ca50904cf9"
+
+SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https"
+SRCREV = "45f0735219a615ae848033c47c7e2d85d101d43e"
+S = "${WORKDIR}/git"
+
+DEPENDS_append_libc-musl = " libucontext"
+XCFLAGS = "-pthread"
+XCFLAGS_append_libc-musl = " -lucontext"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'"
+
+do_install () {
+    oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
index 97d60a6..b1c4663 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
 
-inherit autotools
+inherit autotools update-alternatives
 
 PV = "0.1.0"
 SRCREV = "a826d136e0e8fa53815f1ba05893e6dd74208c15"
@@ -14,3 +14,6 @@
 
 S = "${WORKDIR}/git"
 
+ALTERNATIVE_${PN} = "gadget-acm-ecm show-gadgets"
+ALTERNATIVE_LINK_NAME[gadget-acm-ecm] = "${bindir}/gadget-acm-ecm"
+ALTERNATIVE_LINK_NAME[show-gadgets] = "${bindir}/show-gadgets"
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
index d73ca61..48fc911 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
@@ -5,7 +5,7 @@
 
 DEPENDS = "libconfig"
 
-inherit autotools pkgconfig systemd update-rc.d
+inherit autotools pkgconfig systemd update-rc.d update-alternatives
 
 PV = "0.2.0+git${SRCPV}"
 SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898"
@@ -38,3 +38,8 @@
 }
 
 RDEPENDS_${PN} += "libusbgx-config"
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN} = "gadget-acm-ecm show-gadgets"
+ALTERNATIVE_LINK_NAME[gadget-acm-ecm] = "${bindir}/gadget-acm-ecm"
+ALTERNATIVE_LINK_NAME[show-gadgets] = "${bindir}/show-gadgets"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links_2.20.2.bb b/meta-openembedded/meta-oe/recipes-support/links/links_2.21.bb
similarity index 77%
rename from meta-openembedded/meta-oe/recipes-support/links/links_2.20.2.bb
rename to meta-openembedded/meta-oe/recipes-support/links/links_2.21.bb
index 1a36291..b6048c1 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/links_2.20.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/links/links_2.21.bb
@@ -9,7 +9,7 @@
                 --without-directfb --without-pmshell --without-atheos \
                 --without-x"
 
-SRC_URI[md5sum] = "ee39e612249440d0497535d0dafc3c0e"
-SRC_URI[sha256sum] = "4b4f07d0e6261118d1365a5a5bfa31e1eafdbd280cfae6f0e9eedfea51a2f424"
+SRC_URI[md5sum] = "b88a46733d6932442ed8a6b751aac6b4"
+SRC_URI[sha256sum] = "285eed8591c7781ec26213df82786665aaa1b9286782e8a7a1a7e2a6e1630d63"
 SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
 SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.49.bb b/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.49.bb
index ff3047f..537c458 100644
--- a/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.49.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.49.bb
@@ -21,6 +21,11 @@
 SRC_URI[md5sum] = "d5701a1a541383c0eda328f4a6518751"
 SRC_URI[sha256sum] = "f7381516bc1a937348efd1d0e14618e0a2afc5d59fe821dd248632d5601b59b5"
 
+inherit update-alternatives
+
 do_install() {
     oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
 }
+
+ALTERNATIVE_${PN} = "mime.types"
+ALTERNATIVE_LINK_NAME[mime.types] = "${sysconfdir}/mime.types"
diff --git a/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb b/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
index d617b66..1137f50 100644
--- a/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
@@ -10,6 +10,8 @@
 SRC_URI = "${DEBIAN_MIRROR}/main/m/mime-support/mime-support_${PV}-1.tar.gz"
 S = "${WORKDIR}/${BPN}"
 
+inherit update-alternatives
+
 FILES_${PN} += " ${libdir}/mime"
 
 docdir_append = "/${BPN}"
@@ -56,3 +58,7 @@
 
 SRC_URI[md5sum] = "d6e5d715e331147352c50c158dbdec6d"
 SRC_URI[sha256sum] = "a529c7892cb786f514af71f4ca5a4c3ebc58b538a49ff959c0d97592d38f040a"
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN} = "mime.types"
+ALTERNATIVE_LINK_NAME[mime.types] = "${sysconfdir}/mime.types"
diff --git a/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb b/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
deleted file mode 100644
index 44f55b5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "A minimal iconv implementation w/ support for UTF-8, ASCII, ISO-8859-1"
-HOMEPAGE = "http://tinderbox.dev.gentoo.org/portage/local/misc/mini-iconv/"
-LICENSE = "MPL-1.1"
-SECTION = "libs"
-DEPENDS = ""
-PROVIDES = "virtual/libiconv"
-LIC_FILES_CHKSUM = "file://iconv.c;beginline=1;endline=6;md5=35af9d9924327fe8a0a1fe3a2cb454c8"
-SRC_URI = "http://mirror.meleeweb.net/pub/linux/gentoo/distfiles/mini-iconv.tar.bz2"
-SRC_URI[md5sum] = "84412221e26505a2b3855d4a1cdcd0e0"
-SRC_URI[sha256sum] = "3552262bf1bcf8e859a2a3a7adfb0367af8593383e730c492e981477aac0a0d4"
-
-
-S = "${WORKDIR}/${BPN}"
-
-do_install() {
-    oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIB=${base_libdir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_5.0.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_5.2.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-support/nano/nano_5.0.bb
rename to meta-openembedded/meta-oe/recipes-support/nano/nano_5.2.bb
index e97c01f..f2cd290 100644
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_5.2.bb
@@ -12,7 +12,7 @@
 PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
 
 SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-SRC_URI[sha256sum] = "7c0d94be69cd066f20df2868a2da02f7b1d416ce8d47c0850a8bd270897caa36"
+SRC_URI[sha256sum] = "32c2da43e1ae9a5e43437d8c6e1ec0388af870c7762c479e5bffb5f292bda7e1"
 
 UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
index 1a87a05..bfc375e 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -14,21 +14,18 @@
  nss/lib/freebl/gcm.c    | 2 ++
  2 files changed, 6 insertions(+)
 
-diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
-index f99f769..b0ec81b 100644
 --- a/nss/lib/freebl/Makefile
 +++ b/nss/lib/freebl/Makefile
-@@ -125,6 +125,9 @@ else
-         DEFINES += -DNSS_X86
+@@ -126,6 +126,8 @@ else
  endif
  endif
-+
+ ifdef NS_USE_GCC
 +ifdef NSS_USE_ARM_HW_CRYPTO
 +    DEFINES += -DNSS_USE_ARM_HW_CRYPTO
  ifeq ($(CPU_ARCH),aarch64)
-     DEFINES += -DUSE_HW_AES -DUSE_HW_SHA2
-     EXTRA_SRCS += aes-armv8.c gcm-aarch64.c sha256-armv8.c
-@@ -148,6 +151,7 @@ endif
+     DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
+     EXTRA_SRCS += aes-armv8.c gcm-aarch64.c sha1-armv8.c sha256-armv8.c
+@@ -150,6 +152,7 @@ endif
          endif
      endif
  endif
@@ -36,23 +33,15 @@
  
  ifeq ($(OS_TARGET),OSF1)
      DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
-diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c
-index c2cc18d..b77f573 100644
 --- a/nss/lib/freebl/gcm.c
 +++ b/nss/lib/freebl/gcm.c
-@@ -18,6 +18,7 @@
- 
- #include <limits.h>
- 
-+#ifdef NSS_USE_ARM_HW_CRYPTO
+@@ -21,7 +21,9 @@
  /* old gcc doesn't support some poly64x2_t intrinsic */
  #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
      (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
-@@ -27,6 +28,7 @@
- /* We don't test on big endian platform, so disable this on big endian. */
++# ifdef NSS_USE_ARM_HW_CRYPTO
  #define USE_ARM_GCM
- #endif
-+#endif
- 
- /* Forward declarations */
- SECStatus gcm_HashInit_hw(gcmHashContext *ghash);
++# endif
+ #elif defined(__arm__) && defined(IS_LITTLE_ENDIAN) && \
+     !defined(NSS_DISABLE_ARM32_NEON)
+ /* We don't test on big endian platform, so disable this on big endian. */
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-pkix-Do-not-use-NULL-where-0-is-needed.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-pkix-Do-not-use-NULL-where-0-is-needed.patch
new file mode 100644
index 0000000..432312d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-pkix-Do-not-use-NULL-where-0-is-needed.patch
@@ -0,0 +1,46 @@
+From 1136cad77c2dc7d8e1daa317877676733e805f29 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Aug 2020 17:30:40 -0700
+Subject: [PATCH] pkix: Do not use NULL where 0 is needed
+
+Clang finds this error
+
+pkix_logger.c:316:32: error: cast to smaller integer type 'PKIX_ERRORCLASS' from 'void *' [-Werror,-Wvoid-pointer-to-enum-cast]
+        logger->logComponent = (PKIX_ERRORCLASS)NULL;
+                               ^~~~~~~~~~~~~~~~~~~~~
+pkix_logger.c:617:32: error: cast to smaller integer type 'PKIX_ERRORCLASS' from 'void *' [-Werror,-Wvoid-pointer-to-enum-cast]
+        logger->logComponent = (PKIX_ERRORCLASS)NULL;
+                               ^~~~~~~~~~~~~~~~~~~~~
+2 errors generated.
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1661378]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ nss/lib/libpkix/pkix/util/pkix_logger.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nss/lib/libpkix/pkix/util/pkix_logger.c b/nss/lib/libpkix/pkix/util/pkix_logger.c
+index a916e6e..10f537a 100644
+--- a/nss/lib/libpkix/pkix/util/pkix_logger.c
++++ b/nss/lib/libpkix/pkix/util/pkix_logger.c
+@@ -313,7 +313,7 @@ pkix_Logger_Destroy(
+ 
+         logger->callback = NULL;
+         PKIX_DECREF(logger->context);
+-        logger->logComponent = (PKIX_ERRORCLASS)NULL;
++        logger->logComponent = (PKIX_ERRORCLASS)0;
+ 
+ cleanup:
+ 
+@@ -614,7 +614,7 @@ PKIX_Logger_Create(
+ 
+         logger->callback = callback;
+         logger->maxLevel = 0;
+-        logger->logComponent = (PKIX_ERRORCLASS)NULL;
++        logger->logComponent = (PKIX_ERRORCLASS)0;
+ 
+         PKIX_INCREF(loggerContext);
+         logger->context = loggerContext;
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh b/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh
deleted file mode 100644
index a74e499..0000000
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-# signlibs.sh
-#
-# (c)2010 Wind River Systems, Inc.
-#
-# regenerates the .chk files for the NSS libraries that require it
-# since the ones that are built have incorrect checksums that were
-# calculated on the host where they really need to be done on the
-# target
-
-CHK_FILES=`ls /lib*/*.chk /usr/lib*/*.chk 2>/dev/null`
-SIGN_BINARY=`which shlibsign`
-for I in $CHK_FILES
-do
-       DN=`dirname $I`
-       BN=`basename $I .chk`
-       FN=$DN/$BN.so
-       $SIGN_BINARY -i $FN
-done
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.54.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.56.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-support/nss/nss_3.54.bb
rename to meta-openembedded/meta-oe/recipes-support/nss/nss_3.56.bb
index 4923f68..997f895 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.54.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.56.bb
@@ -21,7 +21,6 @@
 
 SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
            file://nss.pc.in \
-           file://signlibs.sh \
            file://0001-nss-fix-support-cross-compiling.patch \
            file://nss-no-rpath-for-cross-compiling.patch \
            file://nss-fix-incorrect-shebang-of-perl.patch \
@@ -32,9 +31,9 @@
            file://system-pkcs11.txt \
            file://nss-fix-nsinstall-build.patch \
            file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
+           file://0001-pkix-Do-not-use-NULL-where-0-is-needed.patch \
            "
-
-SRC_URI[sha256sum] = "dab18bbfcf5e347934cda664df75ce9fd912a5772686c40d3c805e53c08d6e43"
+SRC_URI[sha256sum] = "f875e0e8ed3b5ce92d675be4a55aa25a8c1199789a4a01f69b5f2327e2048e9c"
 
 UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
 UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
@@ -57,7 +56,6 @@
 do_compile_prepend_class-native() {
     export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
     export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
-    export NSS_ENABLE_WERROR=0
 }
 
 do_compile_prepend_class-nativesdk() {
@@ -71,6 +69,7 @@
 
 do_compile() {
     export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
+    export NSS_ENABLE_WERROR=0
 
     export CROSS_COMPILE=1
     export NATIVE_CC="${BUILD_CC}"
@@ -214,7 +213,6 @@
         touch ${D}/${libdir}/$file
         chmod 755 ${D}/${libdir}/$file
     done
-    install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh
 
     install -d ${D}${libdir}/pkgconfig/
     sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
@@ -238,20 +236,17 @@
 }
 
 PACKAGE_WRITE_DEPS += "nss-native"
+
 pkg_postinst_${PN} () {
-    if [ -n "$D" ]; then
-        for I in $D${libdir}/lib*.chk; do
-            DN=`dirname $I`
-            BN=`basename $I .chk`
-            FN=$DN/$BN.so
-            shlibsign -i $FN
-            if [ $? -ne 0 ]; then
-                exit 1
-            fi
-        done
-    else
-        signlibs.sh
-    fi
+    for I in $D${libdir}/lib*.chk; do
+        DN=`dirname $I`
+        BN=`basename $I .chk`
+        FN=$DN/$BN.so
+        shlibsign -i $FN
+        if [ $? -ne 0 ]; then
+            echo "shlibsign -i $FN failed"
+        fi
+    done
 }
 
 PACKAGES =+ "${PN}-smime"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.4.0.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.4.0.bb
index 372e15c..c83186d 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.4.0.bb
@@ -199,6 +199,13 @@
 
 RDEPENDS_${PN}-apps  = "bash"
 
+do_compile_prepend() {
+    # remove the build host info to improve reproducibility
+    if [ -f ${WORKDIR}/build/modules/core/version_string.inc ]; then
+        sed -i "s#${WORKDIR}#/workdir#g" ${WORKDIR}/build/modules/core/version_string.inc
+    fi
+}
+
 do_install_append() {
     # Move Python files into correct library folder (for multilib build)
     if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.50.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.51.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.50.bb
rename to meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.51.bb
index 3a130f9..d2c5746 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.50.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.51.bb
@@ -25,8 +25,8 @@
     file://remove-user-host-pwd-from-version.patch \
 "
 
-SRC_URI[md5sum] = "f9ed44ef373abed04c9e4c8586260f9e"
-SRC_URI[sha256sum] = "5cb57d958bf5c55a678c6a0f06821e0e5504d5a92e6a33240841fbca1db586b8"
+SRC_URI[md5sum] = "0d2025896cf1c17af7304ecc57ec9531"
+SRC_URI[sha256sum] = "f490775ea4c6506b7210ee55a102c8f4aacfe9d1c8eaa633c7316d33a714be62"
 
 DEPENDS = "util-linux groff-native"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
index eacd4ab..277d120 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
@@ -8,10 +8,10 @@
 inherit pkgconfig
 
 SRC_URI = "git://github.com/EionRobb/skype4pidgin;branch=master;protocol=git"
-SRCREV = "77f94b55bfb8b0dbc7fafa7461057d33b6802236"
+SRCREV = "b226d1c457d73900ae89b8a7469247fbe33677a6"
 
 S = "${WORKDIR}/git"
-PV = "1.6+git${SRCPV}"
+PV = "1.7+git${SRCPV}"
 
 do_compile() {
     oe_runmake -C skypeweb;
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_20.08.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_20.09.0.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-support/poppler/poppler_20.08.0.bb
rename to meta-openembedded/meta-oe/recipes-support/poppler/poppler_20.09.0.bb
index c3f9716..ceff2d0 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_20.08.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_20.09.0.bb
@@ -7,7 +7,7 @@
            file://0001-Do-not-overwrite-all-our-build-flags.patch \
            file://basename-include.patch \
            "
-SRC_URI[sha256sum] = "ae65fef04bbf63259a6352e7b620719115d4fb97f5079b0b8b00a8eb0c86eca5"
+SRC_URI[sha256sum] = "4ed6eb5ddc4c37f2435c9d78ff9c7c4036455aea3507d1ce8400070aab745363"
 
 DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.30.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.31.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.30.bb
rename to meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.31.bb
index 7831dd9..e99f8ac 100644
--- a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.30.bb
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.31.bb
@@ -10,7 +10,7 @@
 SRC_URI = "git://github.com/abrt/satyr.git \
            file://0002-fix-compile-failure-against-musl-C-library.patch \
 "
-SRCREV = "871a07001c64cfce15dffd7e93a5c3d55af6d5e8"
+SRCREV = "79506592fa61fa10aa2e186158eecfa10b39e905"
 S = "${WORKDIR}/git"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
index 48eb268..8bbc681 100644
--- a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -4,7 +4,7 @@
 LICENSE="GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-inherit gettext autotools
+inherit gettext autotools update-alternatives
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
            file://0001-Fix-build-with-clang.patch \
@@ -25,3 +25,7 @@
 }
 
 BBCLASSEXTEND = "native nativesdk"
+
+ALTERNATIVE_${PN} = "uudecode uuencode"
+ALTERNATIVE_LINK_NAME[uudecode] = "${bindir}/uudecode"
+ALTERNATIVE_LINK_NAME[uuencode] = "${bindir}/uuencode"
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.7.0.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.0.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.7.0.bb
rename to meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.0.bb
index ce491da..b79eb7c 100644
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
-SRCREV = "616caa5d30172b65cc3a06800894c575d70cb8e6"
+SRCREV = "4a9ccf7e38e257feecce0c579a782741254eaeef"
 SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;"
 
 DEPENDS += "fmt"
diff --git a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
index 6257568..06fb82b 100644
--- a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -4,9 +4,9 @@
 LICENSE="GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
 
-BPV = "0.8.4"
+BPV = "0.8.5"
 PV = "${BPV}"
-SRCREV = "4a36a84f7df291ddaebd397aecf0c8515256a8e0"
+SRCREV = "3c93b9038a7c4d9de4302ab6f14372e9fa381f3c"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index ff6d9d2..2b38f4d 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -131,10 +131,6 @@
 
 CONFFILES_${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
 
-# syslog initscript is handled explicitly because order of
-# update-rc.d and update-alternatives is important
-RDEPENDS_${PN} += " ${@oe.utils.conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
-
 RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
 RCONFLICTS_${PN}-libs = "busybox-syslog sysklogd rsyslog"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-fixes_for_mm_struct.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-fixes_for_mm_struct.patch
deleted file mode 100644
index 1ad5ce5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-fixes_for_mm_struct.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From 98070c936931879d2b8e22939724b5a0689721d0 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 18 Aug 2020 17:48:29 +0800
-Subject: [PATCH 1/3] fixes_for_mm_struct
-
-Upstream-Status: Backport [https://www.virtualbox.org/ticket/19644]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- .../Runtime/r0drv/linux/memobj-r0drv-linux.c  | 74 +++++++++++++++++--
- 1 file changed, 67 insertions(+), 7 deletions(-)
-
-diff --git a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
-index 37389bcc..cdc7e8e6 100644
---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
-+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
-@@ -222,9 +222,17 @@ static void *rtR0MemObjLinuxDoMmap(RTR3PTR R3PtrFixed, size_t cb, size_t uAlignm
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
-         ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0);
- #else
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-         down_write(&pTask->mm->mmap_sem);
-+#else
-+        down_write(&pTask->mm->mmap_lock);
-+#endif
-         ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-         up_write(&pTask->mm->mmap_sem);
-+#else
-+        up_write(&pTask->mm->mmap_lock);
-+#endif
- #endif
-     }
-     else
-@@ -232,9 +240,17 @@ static void *rtR0MemObjLinuxDoMmap(RTR3PTR R3PtrFixed, size_t cb, size_t uAlignm
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
-         ulAddr = vm_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0);
- #else
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-         down_write(&pTask->mm->mmap_sem);
-+#else
-+        down_write(&pTask->mm->mmap_lock);
-+#endif
-         ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-         up_write(&pTask->mm->mmap_sem);
-+#else
-+        up_write(&pTask->mm->mmap_lock);
-+#endif
- #endif
-         if (    !(ulAddr & ~PAGE_MASK)
-             &&  (ulAddr & (uAlignment - 1)))
-@@ -269,13 +285,29 @@ static void rtR0MemObjLinuxDoMunmap(void *pv, size_t cb, struct task_struct *pTa
-     Assert(pTask == current); RT_NOREF_PV(pTask);
-     vm_munmap((unsigned long)pv, cb);
- #elif defined(USE_RHEL4_MUNMAP)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-     down_write(&pTask->mm->mmap_sem);
-+#else
-+    down_write(&pTask->mm->mmap_lock);
-+#endif
-     do_munmap(pTask->mm, (unsigned long)pv, cb, 0); /* should it be 1 or 0? */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-     up_write(&pTask->mm->mmap_sem);
- #else
-+    up_write(&pTask->mm->mmap_lock);
-+#endif
-+#else
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-     down_write(&pTask->mm->mmap_sem);
-+#else
-+    down_write(&pTask->mm->mmap_lock);
-+#endif
-     do_munmap(pTask->mm, (unsigned long)pv, cb);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-     up_write(&pTask->mm->mmap_sem);
-+#else
-+    up_write(&pTask->mm->mmap_lock);
-+#endif
- #endif
- }
- 
-@@ -593,7 +625,11 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
-                 size_t              iPage;
-                 Assert(pTask);
-                 if (pTask && pTask->mm)
--                    down_read(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+		    down_read(&pTask->mm->mmap_sem);
-+#else
-+		    down_read(&pTask->mm->mmap_lock);
-+#endif
- 
-                 iPage = pMemLnx->cPages;
-                 while (iPage-- > 0)
-@@ -608,7 +644,11 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem)
-                 }
- 
-                 if (pTask && pTask->mm)
--                    up_read(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+		    up_read(&pTask->mm->mmap_sem);
-+#else
-+		    up_read(&pTask->mm->mmap_lock);
-+#endif
-             }
-             /* else: kernel memory - nothing to do here. */
-             break;
-@@ -1076,7 +1116,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3P
-     papVMAs = (struct vm_area_struct **)RTMemAlloc(sizeof(*papVMAs) * cPages);
-     if (papVMAs)
-     {
--        down_read(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+	down_read(&pTask->mm->mmap_sem);
-+#else
-+	down_read(&pTask->mm->mmap_lock);
-+#endif
- 
-         /*
-          * Get user pages.
-@@ -1162,7 +1206,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3P
-                 papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED;
-             }
- 
--            up_read(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+	    up_read(&pTask->mm->mmap_sem);
-+#else
-+	    up_read(&pTask->mm->mmap_lock);
-+#endif
- 
-             RTMemFree(papVMAs);
- 
-@@ -1189,7 +1237,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3P
- #endif
-         }
- 
--        up_read(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+	up_read(&pTask->mm->mmap_sem);
-+#else
-+	up_read(&pTask->mm->mmap_lock);
-+#endif
- 
-         RTMemFree(papVMAs);
-         rc = VERR_LOCK_FAILED;
-@@ -1604,7 +1656,11 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p
-             const size_t    cPages    = (offSub + cbSub) >> PAGE_SHIFT;
-             size_t          iPage;
- 
--            down_write(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+	    down_write(&pTask->mm->mmap_sem);
-+#else
-+	    down_write(&pTask->mm->mmap_lock);
-+#endif
- 
-             rc = VINF_SUCCESS;
-             if (pMemLnxToMap->cPages)
-@@ -1721,7 +1777,11 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p
-             }
- #endif /* CONFIG_NUMA_BALANCING */
- 
--            up_write(&pTask->mm->mmap_sem);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+	    up_write(&pTask->mm->mmap_sem);
-+#else
-+	    up_write(&pTask->mm->mmap_lock);
-+#endif
- 
-             if (RT_SUCCESS(rc))
-             {
--- 
-2.18.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0002-fixes_for_module_memory.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0002-fixes_for_module_memory.patch
deleted file mode 100644
index a3cfc3b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0002-fixes_for_module_memory.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From bb580f7b601e5395a2f8fcb2485387035273320f Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 18 Aug 2020 17:49:34 +0800
-Subject: [PATCH 2/3] fixes_for_module_memory
-
-Upstream-Status: Backport [https://www.virtualbox.org/ticket/19644]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- .../Runtime/r0drv/linux/alloc-r0drv-linux.c    | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c b/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
-index bbb8acc6..45cd34c7 100644
---- a/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
-+++ b/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
-@@ -153,6 +153,8 @@ RT_EXPORT_SYMBOL(RTR0MemExecDonate);
- 
- 
- #ifdef RTMEMALLOC_EXEC_VM_AREA
-+
-+
- /**
-  * Allocate executable kernel memory in the module range.
-  *
-@@ -168,7 +170,12 @@ static PRTMEMHDR rtR0MemAllocExecVmArea(size_t cb)
-     struct vm_struct   *pVmArea;
-     size_t              iPage;
- 
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
-+    pVmArea = __get_vm_area_caller(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END,
-+		    		   __builtin_return_address(0));
-+#else
-     pVmArea = __get_vm_area(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END);
-+#endif
-     if (!pVmArea)
-         return NULL;
-     pVmArea->nr_pages = 0;    /* paranoia? */
-@@ -201,14 +208,21 @@ static PRTMEMHDR rtR0MemAllocExecVmArea(size_t cb)
- # endif
-         pVmArea->nr_pages = cPages;
-         pVmArea->pages    = papPages;
--        if (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC,
-+# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
-+	unsigned long start = (unsigned long)pVmArea->addr;
-+	unsigned long size = get_vm_area_size(pVmArea);
-+
-+	if (!map_kernel_range(start, size, PAGE_KERNEL_EXEC, papPages))
-+#else
-+	if (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC,
- # if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
-                          &papPagesIterator
- # else
-                          papPages
- # endif
-                          ))
--        {
-+#endif
-+	{
-             PRTMEMLNXHDREX pHdrEx = (PRTMEMLNXHDREX)pVmArea->addr;
-             pHdrEx->pVmArea     = pVmArea;
-             pHdrEx->pvDummy     = NULL;
--- 
-2.18.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0003-fixes_for_changes_in_cpu_tlbstate.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0003-fixes_for_changes_in_cpu_tlbstate.patch
deleted file mode 100644
index 6a3e63f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0003-fixes_for_changes_in_cpu_tlbstate.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 6089974a81b1b44e1d2dfa5af1fdc110dfee40c1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 18 Aug 2020 17:51:24 +0800
-Subject: [PATCH 3/3] fixes_for_changes_in_cpu_tlbstate
-
-Upstream-Status: Backport [https://www.virtualbox.org/ticket/19644]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
-index c7d0d99a..2e7aa6e1 100644
---- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
-+++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
-@@ -757,12 +757,19 @@ EXPORT_SYMBOL(SUPDrvLinuxIDC);
- RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask)
- {
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-     RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4);
-+#else
-+    RTCCUINTREG uOld = __read_cr4();
-+#endif
-     RTCCUINTREG uNew = (uOld & fAndMask) | fOrMask;
-     if (uNew != uOld)
-     {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-         this_cpu_write(cpu_tlbstate.cr4, uNew);
-         __write_cr4(uNew);
-+#endif
-+        ASMSetCR4(uNew);
-     }
- #else
-     RTCCUINTREG uOld = ASMGetCR4();
--- 
-2.18.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/021-linux-5-8.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/021-linux-5-8.patch
new file mode 100644
index 0000000..9d45750
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/021-linux-5-8.patch
@@ -0,0 +1,5046 @@
+fix Linux 5.8
+
+This is a squashed patch with following upstream revisions:
+
+  r85208
+  r85430
+  r85431
+  r85432
+  r85447 # context required adjustment
+  r85453
+  r85460
+  r85461 # context required adjustment
+  r85500
+  r85501
+  r85503
+  r85504
+  r85505
+  r85506
+  r85507 # context required adjustment
+  r85509
+  r85510
+  r85511
+  r85514
+  r85516
+  r85517
+  r85518
+  r85525
+  r85526
+  r85527
+  r85533
+  r85534
+  r85540
+  r85541
+  r85545
+  r85546
+  r85552
+  r85555
+  r85556
+  r85590
+
+Thanks a lot to loqs for his hard work on FS#67488!
+
+--- a/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
++++ b/src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c
+@@ -31,6 +31,12 @@
+ #define LOG_GROUP RTLOGGROUP_TIME
+ #include "the-linux-kernel.h"
+ #include "internal/iprt.h"
++/* Make sure we have the setting functions we need for RTTimeNow: */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
++# define RTTIME_INCL_TIMEVAL
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
++# define RTTIME_INCL_TIMESPEC
++#endif
+ #include <iprt/time.h>
+ #include <iprt/asm.h>
+ 
+@@ -181,22 +187,19 @@ RT_EXPORT_SYMBOL(RTTimeSystemMilliTS);
+ RTDECL(PRTTIMESPEC) RTTimeNow(PRTTIMESPEC pTime)
+ {
+     IPRT_LINUX_SAVE_EFL_AC();
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16)
+-/* On Linux 4.20, time.h includes time64.h and we have to use 64-bit times. */
+-# ifdef _LINUX_TIME64_H
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+     struct timespec64 Ts;
+-    ktime_get_real_ts64(&Ts);
+-# else
+-    struct timespec Ts;
+-    ktime_get_real_ts(&Ts);
+-# endif
++    ktime_get_real_ts64(&Ts);   /* ktime_get_real_ts64 was added as a macro in 3.17, function since 4.18. */
+     IPRT_LINUX_RESTORE_EFL_AC();
+-# ifdef _LINUX_TIME64_H
+     return RTTimeSpecSetTimespec64(pTime, &Ts);
+-# else
++
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16)
++    struct timespec Ts;
++    ktime_get_real_ts(&Ts);     /* ktime_get_real_ts was removed in Linux 4.20. */
++    IPRT_LINUX_RESTORE_EFL_AC();
+     return RTTimeSpecSetTimespec(pTime, &Ts);
+-# endif
+-#else   /* < 2.6.16 */
++
++#else /* < 2.6.16 */
+     struct timeval Tv;
+     do_gettimeofday(&Tv);
+     IPRT_LINUX_RESTORE_EFL_AC();
+--- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
++++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+@@ -52,6 +52,14 @@
+ # define PAGE_READONLY_EXEC PAGE_READONLY
+ #endif
+ 
++/** @def IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
++ * Whether we use alloc_vm_area (3.2+) for executable memory.
++ * This is a must for 5.8+, but we enable it all the way back to 3.2.x for
++ * better W^R compliance (fExecutable flag). */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) || defined(DOXYGEN_RUNNING)
++# define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
++#endif
++
+ /*
+  * 2.6.29+ kernels don't work with remap_pfn_range() anymore because
+  * track_pfn_vma_new() is apparently not defined for non-RAM pages.
+@@ -72,12 +80,27 @@
+ # define gfp_t  unsigned
+ #endif
+ 
++/*
++ * Wrappers around mmap_lock/mmap_sem difference.
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
++# define LNX_MM_DOWN_READ(a_pMm)    down_read(&(a_pMm)->mmap_lock)
++# define LNX_MM_UP_READ(a_pMm)        up_read(&(a_pMm)->mmap_lock)
++# define LNX_MM_DOWN_WRITE(a_pMm)   down_write(&(a_pMm)->mmap_lock)
++# define LNX_MM_UP_WRITE(a_pMm)       up_write(&(a_pMm)->mmap_lock)
++#else
++# define LNX_MM_DOWN_READ(a_pMm)    down_read(&(a_pMm)->mmap_sem)
++# define LNX_MM_UP_READ(a_pMm)        up_read(&(a_pMm)->mmap_sem)
++# define LNX_MM_DOWN_WRITE(a_pMm)   down_write(&(a_pMm)->mmap_sem)
++# define LNX_MM_UP_WRITE(a_pMm)       up_write(&(a_pMm)->mmap_sem)
++#endif
++
+ 
+ /*********************************************************************************************************************************
+ *   Structures and Typedefs                                                                                                      *
+ *********************************************************************************************************************************/
+ /**
+- * The Darwin version of the memory object structure.
++ * The Linux version of the memory object structure.
+  */
+ typedef struct RTR0MEMOBJLNX
+ {
+@@ -90,11 +113,20 @@ typedef struct RTR0MEMOBJLNX
+     bool                fExecutable;
+     /** Set if we've vmap'ed the memory into ring-0. */
+     bool                fMappedToRing0;
++#ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
++    /** Return from alloc_vm_area() that we now need to use for executable
++     *  memory. */
++    struct vm_struct   *pArea;
++    /** PTE array that goes along with pArea (must be freed). */
++    pte_t             **papPtesForArea;
++#endif
+     /** The pages in the apPages array. */
+     size_t              cPages;
+     /** Array of struct page pointers. (variable size) */
+     struct page        *apPages[1];
+-} RTR0MEMOBJLNX, *PRTR0MEMOBJLNX;
++} RTR0MEMOBJLNX;
++/** Pointer to the linux memory object. */
++typedef RTR0MEMOBJLNX *PRTR0MEMOBJLNX;
+ 
+ 
+ static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx);
+@@ -182,7 +214,7 @@ static pgprot_t rtR0MemObjLinuxConvertPr
+  * Worker for rtR0MemObjNativeReserveUser and rtR0MemObjNativerMapUser that creates
+  * an empty user space mapping.
+  *
+- * We acquire the mmap_sem of the task!
++ * We acquire the mmap_sem/mmap_lock of the task!
+  *
+  * @returns Pointer to the mapping.
+  *          (void *)-1 on failure.
+@@ -222,9 +254,9 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
+         ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0);
+ #else
+-        down_write(&pTask->mm->mmap_sem);
++        LNX_MM_DOWN_WRITE(pTask->mm);
+         ulAddr = do_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0);
+-        up_write(&pTask->mm->mmap_sem);
++        LNX_MM_UP_WRITE(pTask->mm);
+ #endif
+     }
+     else
+@@ -232,9 +264,9 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
+         ulAddr = vm_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0);
+ #else
+-        down_write(&pTask->mm->mmap_sem);
++        LNX_MM_DOWN_WRITE(pTask->mm);
+         ulAddr = do_mmap(NULL, 0, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS, 0);
+-        up_write(&pTask->mm->mmap_sem);
++        LNX_MM_UP_WRITE(pTask->mm);
+ #endif
+         if (    !(ulAddr & ~PAGE_MASK)
+             &&  (ulAddr & (uAlignment - 1)))
+@@ -257,7 +289,7 @@ static void *rtR0MemObjLinuxDoMmap(RTR3P
+  * Worker that destroys a user space mapping.
+  * Undoes what rtR0MemObjLinuxDoMmap did.
+  *
+- * We acquire the mmap_sem of the task!
++ * We acquire the mmap_sem/mmap_lock of the task!
+  *
+  * @param   pv          The ring-3 mapping.
+  * @param   cb          The size of the mapping.
+@@ -269,13 +301,13 @@ static void rtR0MemObjLinuxDoMunmap(void
+     Assert(pTask == current); RT_NOREF_PV(pTask);
+     vm_munmap((unsigned long)pv, cb);
+ #elif defined(USE_RHEL4_MUNMAP)
+-    down_write(&pTask->mm->mmap_sem);
++    LNX_MM_DOWN_WRITE(pTask->mm);
+     do_munmap(pTask->mm, (unsigned long)pv, cb, 0); /* should it be 1 or 0? */
+-    up_write(&pTask->mm->mmap_sem);
++    LNX_MM_UP_WRITE(pTask->mm);
+ #else
+-    down_write(&pTask->mm->mmap_sem);
++    LNX_MM_DOWN_WRITE(pTask->mm);
+     do_munmap(pTask->mm, (unsigned long)pv, cb);
+-    up_write(&pTask->mm->mmap_sem);
++    LNX_MM_UP_WRITE(pTask->mm);
+ #endif
+ }
+ 
+@@ -520,15 +552,49 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO
+             pgprot_val(fPg) |= _PAGE_NX;
+ # endif
+ 
++# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
++        if (fExecutable)
++        {
++            pte_t **papPtes = (pte_t **)kmalloc_array(pMemLnx->cPages, sizeof(papPtes[0]), GFP_KERNEL);
++            if (papPtes)
++            {
++                pMemLnx->pArea = alloc_vm_area(pMemLnx->Core.cb, papPtes); /* Note! pArea->nr_pages is not set. */
++                if (pMemLnx->pArea)
++                {
++                    size_t i;
++                    Assert(pMemLnx->pArea->size >= pMemLnx->Core.cb);   /* Note! includes guard page. */
++                    Assert(pMemLnx->pArea->addr);
++#  ifdef _PAGE_NX
++                    pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */
++#  endif
++                    pMemLnx->papPtesForArea = papPtes;
++                    for (i = 0; i < pMemLnx->cPages; i++)
++                        *papPtes[i] = mk_pte(pMemLnx->apPages[i], fPg);
++                    pMemLnx->Core.pv = pMemLnx->pArea->addr;
++                    pMemLnx->fMappedToRing0 = true;
++                }
++                else
++                {
++                    kfree(papPtes);
++                    rc = VERR_MAP_FAILED;
++                }
++            }
++            else
++                rc = VERR_MAP_FAILED;
++        }
++        else
++# endif
++        {
+ # ifdef VM_MAP
+-        pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
++            pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
+ # else
+-        pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_ALLOC, fPg);
++            pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_ALLOC, fPg);
+ # endif
+-        if (pMemLnx->Core.pv)
+-            pMemLnx->fMappedToRing0 = true;
+-        else
+-            rc = VERR_MAP_FAILED;
++            if (pMemLnx->Core.pv)
++                pMemLnx->fMappedToRing0 = true;
++            else
++                rc = VERR_MAP_FAILED;
++        }
+ #else   /* < 2.4.22 */
+         rc = VERR_NOT_SUPPORTED;
+ #endif
+@@ -554,6 +620,22 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO
+ static void rtR0MemObjLinuxVUnmap(PRTR0MEMOBJLNX pMemLnx)
+ {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 22)
++# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
++    if (pMemLnx->pArea)
++    {
++#  if 0
++        pte_t **papPtes = pMemLnx->papPtesForArea;
++        size_t  i;
++        for (i = 0; i < pMemLnx->cPages; i++)
++            *papPtes[i] = 0;
++#  endif
++        free_vm_area(pMemLnx->pArea);
++        kfree(pMemLnx->papPtesForArea);
++        pMemLnx->pArea = NULL;
++        pMemLnx->papPtesForArea = NULL;
++    }
++    else
++# endif
+     if (pMemLnx->fMappedToRing0)
+     {
+         Assert(pMemLnx->Core.pv);
+@@ -593,7 +675,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR
+                 size_t              iPage;
+                 Assert(pTask);
+                 if (pTask && pTask->mm)
+-                    down_read(&pTask->mm->mmap_sem);
++                    LNX_MM_DOWN_READ(pTask->mm);
+ 
+                 iPage = pMemLnx->cPages;
+                 while (iPage-- > 0)
+@@ -608,7 +690,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR
+                 }
+ 
+                 if (pTask && pTask->mm)
+-                    up_read(&pTask->mm->mmap_sem);
++                    LNX_MM_UP_READ(pTask->mm);
+             }
+             /* else: kernel memory - nothing to do here. */
+             break;
+@@ -1076,7 +1158,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+     papVMAs = (struct vm_area_struct **)RTMemAlloc(sizeof(*papVMAs) * cPages);
+     if (papVMAs)
+     {
+-        down_read(&pTask->mm->mmap_sem);
++        LNX_MM_DOWN_READ(pTask->mm);
+ 
+         /*
+          * Get user pages.
+@@ -1162,7 +1244,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+                 papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED;
+             }
+ 
+-            up_read(&pTask->mm->mmap_sem);
++            LNX_MM_UP_READ(pTask->mm);
+ 
+             RTMemFree(papVMAs);
+ 
+@@ -1189,7 +1271,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+ #endif
+         }
+ 
+-        up_read(&pTask->mm->mmap_sem);
++        LNX_MM_UP_READ(pTask->mm);
+ 
+         RTMemFree(papVMAs);
+         rc = VERR_LOCK_FAILED;
+@@ -1422,6 +1504,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne
+              * Use vmap - 2.4.22 and later.
+              */
+             pgprot_t fPg = rtR0MemObjLinuxConvertProt(fProt, true /* kernel */);
++            /** @todo We don't really care too much for EXEC here... 5.8 always adds NX. */
+             Assert(((offSub + cbSub) >> PAGE_SHIFT) <= pMemLnxToMap->cPages);
+ # ifdef VM_MAP
+             pMemLnx->Core.pv = vmap(&pMemLnxToMap->apPages[offSub >> PAGE_SHIFT], cbSub >> PAGE_SHIFT, VM_MAP, fPg);
+@@ -1604,7 +1687,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(
+             const size_t    cPages    = (offSub + cbSub) >> PAGE_SHIFT;
+             size_t          iPage;
+ 
+-            down_write(&pTask->mm->mmap_sem);
++            LNX_MM_DOWN_WRITE(pTask->mm);
+ 
+             rc = VINF_SUCCESS;
+             if (pMemLnxToMap->cPages)
+@@ -1721,7 +1804,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(
+             }
+ #endif /* CONFIG_NUMA_BALANCING */
+ 
+-            up_write(&pTask->mm->mmap_sem);
++            LNX_MM_UP_WRITE(pTask->mm);
+ 
+             if (RT_SUCCESS(rc))
+             {
+@@ -1753,6 +1836,29 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(
+ 
+ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt)
+ {
++# ifdef IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
++    /*
++     * Currently only supported when we've got addresses PTEs from the kernel.
++     */
++    PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
++    if (pMemLnx->pArea && pMemLnx->papPtesForArea)
++    {
++        pgprot_t const  fPg     = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
++        size_t const    cPages  = (offSub + cbSub) >> PAGE_SHIFT;
++        pte_t         **papPtes = pMemLnx->papPtesForArea;
++        size_t          i;
++
++        for (i = offSub >> PAGE_SHIFT; i < cPages; i++)
++        {
++            set_pte(papPtes[i], mk_pte(pMemLnx->apPages[i], fPg));
++        }
++        preempt_disable();
++        __flush_tlb_all();
++        preempt_enable();
++        return VINF_SUCCESS;
++    }
++# endif
++
+     NOREF(pMem);
+     NOREF(offSub);
+     NOREF(cbSub);
+--- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
++++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
+@@ -144,9 +144,9 @@ static int force_async_tsc = 0;
+  * Memory for the executable memory heap (in IPRT).
+  */
+ # ifdef DEBUG
+-#  define EXEC_MEMORY_SIZE   8388608    /* 8 MB */
++#  define EXEC_MEMORY_SIZE   10485760   /* 10 MB */
+ # else
+-#  define EXEC_MEMORY_SIZE   2097152    /* 2 MB */
++#  define EXEC_MEMORY_SIZE   8388608    /* 8 MB */
+ # endif
+ extern uint8_t g_abExecMemory[EXEC_MEMORY_SIZE];
+ # ifndef VBOX_WITH_TEXT_MODMEM_HACK
+@@ -756,20 +756,25 @@ EXPORT_SYMBOL(SUPDrvLinuxIDC);
+ 
+ RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask)
+ {
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
+-    RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4);
+-    RTCCUINTREG uNew = (uOld & fAndMask) | fOrMask;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
++    RTCCUINTREG const uOld = __read_cr4();
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
++    RTCCUINTREG const uOld = this_cpu_read(cpu_tlbstate.cr4);
++#else
++    RTCCUINTREG const uOld = ASMGetCR4();
++#endif
++    RTCCUINTREG const uNew = (uOld & fAndMask) | fOrMask;
+     if (uNew != uOld)
+     {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
++        ASMSetCR4(uNew);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
+         this_cpu_write(cpu_tlbstate.cr4, uNew);
+         __write_cr4(uNew);
+-    }
+ #else
+-    RTCCUINTREG uOld = ASMGetCR4();
+-    RTCCUINTREG uNew = (uOld & fAndMask) | fOrMask;
+-    if (uNew != uOld)
+         ASMSetCR4(uNew);
+ #endif
++    }
+     return uOld;
+ }
+ 
+--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
+@@ -52,7 +52,7 @@
+ #endif
+ #include <linux/seq_file.h>
+ #include <linux/vfs.h>
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+ # include <linux/vermagic.h>
+ #endif
+ #include <VBox/err.h>
+--- a/Config.kmk
++++ b/Config.kmk
+@@ -4462,15 +4462,20 @@ endif # pe
+ 
+ ifeq ($(VBOX_LDR_FMT),elf)
+ TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
+-TEMPLATE_VBoxR0_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C)   $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
+-TEMPLATE_VBoxR0_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
+-TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
+-TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
++TEMPLATE_VBoxR0_CFLAGS              = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \
++	$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
++	$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
++TEMPLATE_VBoxR0_CXXFLAGS            = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) \
++	$(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \
++	$(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
++	-fno-rtti $(VBOX_GCC_std) $(VBOX_GCC_IPRT_FMT_CHECK)
+++TEMPLATE_VBoxR0_CFLAGS.amd64        = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding
+++TEMPLATE_VBoxR0_CXXFLAGS.amd64      = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables
+ TEMPLATE_VBoxR0_CXXFLAGS.freebsd    = -ffreestanding
+  if $(VBOX_GCC_VERSION_CC) < 30400
+   TEMPLATE_VBoxR0_DEFS             += RT_WITHOUT_PRAGMA_ONCE
+  endif
+-ifeq ($(KBUILD_TARGET),solaris)
++ ifeq ($(KBUILD_TARGET),solaris)
+  TEMPLATE_VBoxR0_LDFLAGS            = -r
+  TEMPLATE_VBoxR0_LDFLAGS.solaris    = -u _init -u _info
+  TEMPLATE_VBoxR0_LIBS.solaris       = \
+@@ -4481,19 +4486,32 @@ ifeq ($(KBUILD_TARGET),solaris)
+  endif
+  # Solaris driver signing.
+  TEMPLATE_VBoxR0_POST_CMDS          = $(VBOX_SIGN_DRIVER_CMDS)
+-else
++ else
+  TEMPLATE_VBoxR0_LDFLAGS            = -nostdlib -Bsymbolic -g
+  ## @todo WTF doesn't the globals work? Debug info is supposed to be split everywhere. GRR
+  TEMPLATE_VBoxR0_LD_DEBUG           = split
+-endif
+-ifn1of ($(KBUILD_TARGET),solaris freebsd)
++ endif
++ if1of ($(KBUILD_TARGET), linux)
++VBOX_WITH_VBOXR0_AS_DLL = 1
++TEMPLATE_VBoxR0_DLLSUFF             = .r0
++TEMPLATE_VBoxR0_CFLAGS             += -fPIC
++TEMPLATE_VBoxR0_CXXFLAGS           += -fPIC
++TEMPLATE_VBoxR0_LDFLAGS            +=
++TEMPLATE_VBoxR0_DTRACE_HDR_FLAGS   += --pic
++TEMPLATE_VBoxR0_DTRACE_OBJ_FLAGS   += --pic
++ else
++TEMPLATE_VBoxR0_CFLAGS.amd64       += -mcmodel=kernel
++TEMPLATE_VBoxR0_CXXFLAGS.amd64     += -mcmodel=kernel
++ endif
++ ifn1of ($(KBUILD_TARGET),solaris freebsd)
+  TEMPLATE_VBoxR0_LIBS               = \
+ 	$(VBOX_GCC_LIBGCC) # intrinsics
+-endif
+-if1of ($(KBUILD_TARGET),linux)
+- TEMPLATE_VBoxR0_POST_CMDS          =  $(if $(eq $(tool_do),LINK_SYSMOD),if readelf -S $(out)|grep -q "[cd]tors"; then echo "Found ctors/dtors in $(out)!"; exit 1; fi)
+-endif
+-endif
++ endif
++ if1of ($(KBUILD_TARGET),linux)
++ TEMPLATE_VBoxR0_POST_CMDS         += $(NLTAB)\
++ 	$(if $(eq $(tool_do),LINK_SYSMOD),if readelf -S $(out)|grep -q "[cd]tors"; then echo "Found ctors/dtors in $(out)!"; exit 1; fi)
++ endif
++endif # elf
+ 
+ ifeq ($(VBOX_LDR_FMT),macho)
+ TEMPLATE_VBoxR0_TOOL                = $(VBOX_GCC_TOOL)
+--- a/tools/bin/gen-slickedit-workspace.sh
++++ b/tools/bin/gen-slickedit-workspace.sh
+@@ -496,11 +496,13 @@ my_generate_usercpp_h()
+     #
+     # Probe the slickedit user config, picking the most recent version.
+     #
++    MY_VSLICK_DB_OLD=
+     if test -z "${MY_SLICK_CONFIG}"; then
+         if test -d "${HOME}/Library/Application Support/SlickEdit"; then
+             MY_SLICKDIR_="${HOME}/Library/Application Support/SlickEdit"
+             MY_USERCPP_H="unxcpp.h"
+             MY_VSLICK_DB="vslick.sta" # was .stu earlier, 24 is using .sta.
++            MY_VSLICK_DB_OLD="vslick.stu"
+         elif test -d "${HOMEDRIVE}${HOMEPATH}/Documents/My SlickEdit Config"; then
+             MY_SLICKDIR_="${HOMEDRIVE}${HOMEPATH}/Documents/My SlickEdit Config"
+             MY_USERCPP_H="usercpp.h"
+@@ -508,7 +510,8 @@ my_generate_usercpp_h()
+         else
+             MY_SLICKDIR_="${HOME}/.slickedit"
+             MY_USERCPP_H="unxcpp.h"
+-            MY_VSLICK_DB="vslick.stu"
++            MY_VSLICK_DB="vslick.sta"
++            MY_VSLICK_DB_OLD="vslick.stu"
+         fi
+     else
+         MY_SLICKDIR_="${MY_SLICK_CONFIG}"
+@@ -517,7 +520,8 @@ my_generate_usercpp_h()
+             MY_VSLICK_DB="vslick.sta"
+         else
+             MY_USERCPP_H="unxcpp.h"
+-            MY_VSLICK_DB="vslick.stu"
++            MY_VSLICK_DB="vslick.sta"
++            MY_VSLICK_DB_OLD="vslick.stu"
+         fi
+         # MacOS: Implement me!
+     fi
+@@ -526,7 +530,9 @@ my_generate_usercpp_h()
+     MY_VER="0.0.0"
+     for subdir in "${MY_SLICKDIR_}/"*;
+     do
+-        if test -f "${subdir}/${MY_USERCPP_H}"  -o  -f "${subdir}/${MY_VSLICK_DB}"; then
++        if test    -f "${subdir}/${MY_USERCPP_H}"  \
++                -o -f "${subdir}/${MY_VSLICK_DB}" \
++                -o '(' -n "${MY_VSLICK_DB_OLD}" -a -f "${subdir}/${MY_VSLICK_DB_OLD}" ')'; then
+             MY_CUR_VER_NUM=0
+             MY_CUR_VER=`echo "${subdir}" | ${MY_SED} -e 's,^.*/,,g'`
+ 
+@@ -561,6 +567,7 @@ my_generate_usercpp_h()
+         echo "Found SlickEdit v${MY_VER} preprocessor file: ${MY_USERCPP_H_FULL}"
+     else
+         echo "Failed to locate SlickEdit preprocessor file. You need to manually merge ${MY_USERCPP_H}."
++        echo "dbg: MY_SLICKDIR=${MY_SLICKDIR}  MY_USERCPP_H_FULL=${MY_USERCPP_H_FULL}"
+         MY_USERCPP_H_FULL=""
+     fi
+ 
+@@ -717,6 +724,10 @@ EOF
+ #define RTASN1TYPE_STANDARD_PROTOTYPES_NO_GET_CORE(a_TypeNm, a_DeclMacro, a_ImplExtNm) int  a_ImplExtNm##_Init(P##a_TypeNm pThis, PCRTASN1ALLOCATORVTABLE pAllocator); int  a_ImplExtNm##_Clone(P##a_TypeNm pThis, PC##a_TypeNm) pSrc, PCRTASN1ALLOCATORVTABLE pAllocator); void a_ImplExtNm##_Delete(P##a_TypeNm pThis); int  a_ImplExtNm##_Enum(P##a_TypeNm pThis, PFNRTASN1ENUMCALLBACK pfnCallback, uint32_t uDepth, void *pvUser); int  a_ImplExtNm##_Compare(PC##a_TypeNm) pLeft, PC##a_TypeNm pRight); int  a_ImplExtNm##_DecodeAsn1(PRTASN1CURSOR pCursor, uint32_t fFlags, P##a_TypeNm pThis, const char *pszErrorTag); int  a_ImplExtNm##_CheckSanity(PC##a_TypeNm pThis, uint32_t fFlags, PRTERRINFO pErrInfo, const char *pszErrorTag)
+ #define RTASN1TYPE_STANDARD_PROTOTYPES(a_TypeNm, a_DeclMacro, a_ImplExtNm, a_Asn1CoreNm) inline PRTASN1CORE a_ImplExtNm##_GetAsn1Core(PC##a_TypeNm pThis) { return (PRTASN1CORE)&pThis->a_Asn1CoreNm; } inline bool a_ImplExtNm##_IsPresent(PC##a_TypeNm pThis) { return pThis && RTASN1CORE_IS_PRESENT(&pThis->a_Asn1CoreNm); } RTASN1TYPE_STANDARD_PROTOTYPES_NO_GET_CORE(a_TypeNm, a_DeclMacro, a_ImplExtNm)
+ 
++#define RTLDRELF_NAME(name)             rtldrELF64##name
++#define RTLDRELF_SUFF(name)             name##64
++#define RTLDRELF_MID(pre,suff)          pre##64##suff
++
+ #define BS3_DECL(type)                  type
+ #define BS3_DECL_CALLBACK(type)         type
+ #define TMPL_NM(name)                   name##_mmm
+--- a/include/iprt/asmdefs.mac
++++ b/include/iprt/asmdefs.mac
+@@ -841,18 +841,18 @@ size NAME(%1 %+ _EndProc)   0
+ ; is defined and RT_WITHOUT_NOCRT_WRAPPERS isn't.
+ ;
+ %macro RT_NOCRT_BEGINPROC 1
+-%ifdef RT_WITH_NOCRT_ALIASES
+-BEGINPROC RT_NOCRT(%1)
+-%ifdef ASM_FORMAT_ELF
++ %ifdef RT_WITH_NOCRT_ALIASES
++BEGINPROC_EXPORTED RT_NOCRT(%1)
++  %ifdef ASM_FORMAT_ELF
+ global NAME(%1)
+ weak NAME(%1)
+ NAME(%1):
+-%else
++  %else
+ GLOBALNAME %1
+-%endif
+-%else  ; !RT_WITH_NOCRT_ALIASES
+-BEGINPROC RT_NOCRT(%1)
+-%endif ; !RT_WITH_NOCRT_ALIASES
++  %endif
++ %else  ; !RT_WITH_NOCRT_ALIASES
++BEGINPROC_EXPORTED RT_NOCRT(%1)
++ %endif ; !RT_WITH_NOCRT_ALIASES
+ %endmacro ; RT_NOCRT_BEGINPROC
+ 
+ %ifdef RT_WITH_NOCRT_ALIASES
+--- a/src/VBox/Runtime/testcase/tstLdr-4.cpp
++++ b/src/VBox/Runtime/testcase/tstLdr-4.cpp
+@@ -35,9 +35,9 @@
+ #include <iprt/assert.h>
+ #include <iprt/param.h>
+ #include <iprt/path.h>
+-#include <iprt/initterm.h>
+ #include <iprt/err.h>
+ #include <iprt/string.h>
++#include <iprt/test.h>
+ 
+ #include <VBox/sup.h>
+ 
+@@ -45,8 +45,9 @@
+ /*********************************************************************************************************************************
+ *   Global Variables                                                                                                             *
+ *********************************************************************************************************************************/
+-static SUPGLOBALINFOPAGE g_MyGip = { SUPGLOBALINFOPAGE_MAGIC, SUPGLOBALINFOPAGE_VERSION, SUPGIPMODE_INVARIANT_TSC, 42 };
+-static PSUPGLOBALINFOPAGE g_pMyGip = &g_MyGip;
++static RTTEST               g_hTest;
++static SUPGLOBALINFOPAGE    g_MyGip = { SUPGLOBALINFOPAGE_MAGIC, SUPGLOBALINFOPAGE_VERSION, SUPGIPMODE_INVARIANT_TSC, 42 };
++static PSUPGLOBALINFOPAGE   g_pMyGip = &g_MyGip;
+ 
+ extern "C" DECLEXPORT(int) DisasmTest1(void);
+ 
+@@ -58,6 +59,60 @@ static DECLCALLBACK(int) testEnumSegment
+              "     link=%RTptr LB %RTptr align=%RTptr fProt=%#x offFile=%RTfoff\n"
+              , *piSeg, pSeg->RVA, pSeg->cbMapped, pSeg->pszName,
+              pSeg->LinkAddress, pSeg->cb, pSeg->Alignment, pSeg->fProt, pSeg->offFile);
++
++    if (pSeg->RVA != NIL_RTLDRADDR)
++    {
++        RTTESTI_CHECK(pSeg->cbMapped != NIL_RTLDRADDR);
++        RTTESTI_CHECK(pSeg->cbMapped >= pSeg->cb);
++    }
++    else
++    {
++        RTTESTI_CHECK(pSeg->cbMapped == NIL_RTLDRADDR);
++    }
++
++    /*
++     * Do some address conversion tests:
++     */
++    if (pSeg->cbMapped != NIL_RTLDRADDR)
++    {
++        /* RTLdrRvaToSegOffset: */
++        uint32_t    iSegConv   = ~(uint32_t)42;
++        RTLDRADDR   offSegConv = ~(RTLDRADDR)22;
++        int rc = RTLdrRvaToSegOffset(hLdrMod, pSeg->RVA, &iSegConv, &offSegConv);
++        if (RT_FAILURE(rc))
++            RTTestIFailed("RTLdrRvaToSegOffset failed on Seg #%u / RVA %#RTptr: %Rrc", *piSeg, pSeg->RVA, rc);
++        else if (iSegConv != *piSeg || offSegConv != 0)
++                RTTestIFailed("RTLdrRvaToSegOffset on Seg #%u / RVA %#RTptr returned: iSegConv=%#x offSegConv=%RTptr, expected %#x and 0",
++                              *piSeg, pSeg->RVA, iSegConv, offSegConv, *piSeg);
++
++        /* RTLdrSegOffsetToRva: */
++        RTLDRADDR uRvaConv = ~(RTLDRADDR)22;
++        rc = RTLdrSegOffsetToRva(hLdrMod, *piSeg, 0, &uRvaConv);
++        if (RT_FAILURE(rc))
++            RTTestIFailed("RTLdrSegOffsetToRva failed on Seg #%u / off 0: %Rrc", *piSeg, rc);
++        else if (uRvaConv != pSeg->RVA)
++            RTTestIFailed("RTLdrSegOffsetToRva on Seg #%u / off 0 returned: %RTptr, expected %RTptr", *piSeg, uRvaConv, pSeg->RVA);
++
++        /* RTLdrLinkAddressToRva: */
++        uRvaConv = ~(RTLDRADDR)22;
++        rc = RTLdrLinkAddressToRva(hLdrMod, pSeg->LinkAddress, &uRvaConv);
++        if (RT_FAILURE(rc))
++            RTTestIFailed("RTLdrLinkAddressToRva failed on Seg #%u / %RTptr: %Rrc", *piSeg, pSeg->LinkAddress, rc);
++        else if (uRvaConv != pSeg->RVA)
++            RTTestIFailed("RTLdrLinkAddressToRva on Seg #%u / %RTptr returned: %RTptr, expected %RTptr",
++                          *piSeg, pSeg->LinkAddress, uRvaConv, pSeg->RVA);
++
++        /* RTLdrLinkAddressToSegOffset: */
++        iSegConv   = ~(uint32_t)42;
++        offSegConv = ~(RTLDRADDR)22;
++        rc = RTLdrLinkAddressToSegOffset(hLdrMod, pSeg->LinkAddress, &iSegConv, &offSegConv);
++        if (RT_FAILURE(rc))
++            RTTestIFailed("RTLdrLinkAddressToSegOffset failed on Seg #%u / %#RTptr: %Rrc", *piSeg, pSeg->LinkAddress, rc);
++        else if (iSegConv != *piSeg || offSegConv != 0)
++                RTTestIFailed("RTLdrLinkAddressToSegOffset on Seg #%u / %#RTptr returned: iSegConv=%#x offSegConv=%RTptr, expected %#x and 0",
++                              *piSeg, pSeg->LinkAddress, iSegConv, offSegConv, *piSeg);
++    }
++
+     *piSeg += 1;
+     RT_NOREF(hLdrMod);
+     return VINF_SUCCESS;
+@@ -125,12 +180,12 @@ static DECLCALLBACK(int) testGetImport(R
+  * regions the for compare usage. The third is loaded into one
+  * and then relocated between the two and other locations a few times.
+  *
+- * @returns number of errors.
+  * @param   pszFilename     The file to load the mess with.
+  */
+-static int testLdrOne(const char *pszFilename)
++static void testLdrOne(const char *pszFilename)
+ {
+-    int             cErrors = 0;
++    RTTestSub(g_hTest, RTPathFilename(pszFilename));
++
+     size_t          cbImage = 0;
+     struct Load
+     {
+@@ -155,9 +210,8 @@ static int testLdrOne(const char *pszFil
+         rc = RTLdrOpen(pszFilename, 0, RTLDRARCH_WHATEVER, &aLoads[i].hLdrMod);
+         if (RT_FAILURE(rc))
+         {
+-            RTPrintf("tstLdr-4: Failed to open '%s'/%d, rc=%Rrc. aborting test.\n", pszFilename, i, rc);
++            RTTestIFailed("tstLdr-4: Failed to open '%s'/%d, rc=%Rrc. aborting test.", pszFilename, i, rc);
+             Assert(aLoads[i].hLdrMod == NIL_RTLDRMOD);
+-            cErrors++;
+             break;
+         }
+ 
+@@ -165,8 +219,7 @@ static int testLdrOne(const char *pszFil
+         size_t cb = RTLdrSize(aLoads[i].hLdrMod);
+         if (cbImage && cb != cbImage)
+         {
+-            RTPrintf("tstLdr-4: Size mismatch '%s'/%d. aborting test.\n", pszFilename, i);
+-            cErrors++;
++            RTTestIFailed("tstLdr-4: Size mismatch '%s'/%d. aborting test.", pszFilename, i);
+             break;
+         }
+         aLoads[i].cbBits = cbImage = cb;
+@@ -175,8 +228,7 @@ static int testLdrOne(const char *pszFil
+         aLoads[i].pvBits = RTMemExecAlloc(cb);
+         if (!aLoads[i].pvBits)
+         {
+-            RTPrintf("tstLdr-4: Out of memory '%s'/%d cbImage=%d. aborting test.\n", pszFilename, i, cbImage);
+-            cErrors++;
++            RTTestIFailed("Out of memory '%s'/%d cbImage=%d. aborting test.", pszFilename, i, cbImage);
+             break;
+         }
+ 
+@@ -184,8 +236,7 @@ static int testLdrOne(const char *pszFil
+         rc = RTLdrGetBits(aLoads[i].hLdrMod, aLoads[i].pvBits, (uintptr_t)aLoads[i].pvBits, testGetImport, NULL);
+         if (RT_FAILURE(rc))
+         {
+-            RTPrintf("tstLdr-4: Failed to get bits for '%s'/%d, rc=%Rrc. aborting test\n", pszFilename, i, rc);
+-            cErrors++;
++            RTTestIFailed("Failed to get bits for '%s'/%d, rc=%Rrc. aborting test", pszFilename, i, rc);
+             break;
+         }
+     }
+@@ -193,7 +244,7 @@ static int testLdrOne(const char *pszFil
+     /*
+      * Execute the code.
+      */
+-    if (!cErrors)
++    if (!RTTestSubErrorCount(g_hTest))
+     {
+         for (i = 0; i < RT_ELEMENTS(aLoads); i += 1)
+         {
+@@ -209,22 +260,18 @@ static int testLdrOne(const char *pszFil
+                                       UINT32_MAX, "_DisasmTest1", &Value);
+             if (RT_FAILURE(rc))
+             {
+-                RTPrintf("tstLdr-4: Failed to get symbol \"DisasmTest1\" from load #%d: %Rrc\n", i, rc);
+-                cErrors++;
++                RTTestIFailed("Failed to get symbol \"DisasmTest1\" from load #%d: %Rrc", i, rc);
+                 break;
+             }
+             DECLCALLBACKPTR(int, pfnDisasmTest1)(void) = (DECLCALLBACKPTR(int, RT_NOTHING)(void))(uintptr_t)Value; /* eeeh. */
+-            RTPrintf("tstLdr-4: pfnDisasmTest1=%p / add-symbol-file %s %#x\n", pfnDisasmTest1, pszFilename, aLoads[i].pvBits);
++            RTPrintf("tstLdr-4: pfnDisasmTest1=%p / add-symbol-file %s %#p\n", pfnDisasmTest1, pszFilename, aLoads[i].pvBits);
+             uint32_t iSeg = 0;
+             RTLdrEnumSegments(aLoads[i].hLdrMod, testEnumSegment, &iSeg);
+ 
+             /* call the test function. */
+             rc = pfnDisasmTest1();
+             if (rc)
+-            {
+-                RTPrintf("tstLdr-4: load #%d Test1 -> %#x\n", i, rc);
+-                cErrors++;
+-            }
++                RTTestIFailed("load #%d Test1 -> %#x", i, rc);
+ 
+             /* While we're here, check a couple of RTLdrQueryProp calls too */
+             void *pvBits = aLoads[i].pvBits;
+@@ -255,56 +302,42 @@ static int testLdrOne(const char *pszFil
+         {
+             rc = RTLdrClose(aLoads[i].hLdrMod);
+             if (RT_FAILURE(rc))
+-            {
+-                RTPrintf("tstLdr-4: Failed to close '%s' i=%d, rc=%Rrc.\n", pszFilename, i, rc);
+-                cErrors++;
+-            }
++                RTTestIFailed("Failed to close '%s' i=%d, rc=%Rrc.", pszFilename, i, rc);
+         }
+     }
+ 
+-    return cErrors;
+ }
+ 
+ 
+ 
+-int main(int argc, char **argv)
++int main()
+ {
+-    int cErrors = 0;
+-    RTR3InitExe(argc, &argv, 0);
++    RTEXITCODE rcExit = RTTestInitAndCreate("tstLdr-4", &g_hTest);
++    if (rcExit != RTEXITCODE_SUCCESS)
++        return rcExit;
+ 
+     /*
+      * Sanity check.
+      */
+     int rc = DisasmTest1();
+-    if (rc)
++    if (rc == 0)
+     {
+-        RTPrintf("tstLdr-4: FATAL ERROR - DisasmTest1 is buggy: rc=%#x\n", rc);
+-        return 1;
+-    }
++        /*
++         * Execute the test.
++         */
++        char szPath[RTPATH_MAX];
++        rc = RTPathExecDir(szPath, sizeof(szPath) - sizeof("/tstLdrObjR0.r0"));
++        if (RT_SUCCESS(rc))
++        {
++            strcat(szPath, "/tstLdrObjR0.r0");
+ 
+-    /*
+-     * Execute the test.
+-     */
+-    char szPath[RTPATH_MAX];
+-    rc = RTPathExecDir(szPath, sizeof(szPath) - sizeof("/tstLdrObjR0.r0"));
+-    if (RT_SUCCESS(rc))
+-    {
+-        strcat(szPath, "/tstLdrObjR0.r0");
+-        RTPrintf("tstLdr-4: TESTING '%s'...\n", szPath);
+-        cErrors += testLdrOne(szPath);
++            testLdrOne(szPath);
++        }
++        else
++            RTTestIFailed("RTPathExecDir -> %Rrc", rc);
+     }
+     else
+-    {
+-        RTPrintf("tstLdr-4: RTPathExecDir -> %Rrc\n", rc);
+-        cErrors++;
+-    }
++        RTTestIFailed("FATAL ERROR - DisasmTest1 is buggy: rc=%#x", rc);
+ 
+-    /*
+-     * Test result summary.
+-     */
+-    if (!cErrors)
+-        RTPrintf("tstLdr-4: SUCCESS\n");
+-    else
+-        RTPrintf("tstLdr-4: FAILURE - %d errors\n", cErrors);
+-    return !!cErrors;
++    return RTTestSummaryAndDestroy(g_hTest);
+ }
+--- a/include/iprt/formats/elf-common.h
++++ b/include/iprt/formats/elf-common.h
+@@ -198,6 +198,12 @@ typedef struct {
+ #define PT_LOPROC       0x70000000      /* First processor-specific type. */
+ #define PT_HIPROC       0x7fffffff      /* Last processor-specific type. */
+ 
++#define PT_GNU_EH_FRAME 0x6474e550 /**< GNU/Linux -> .eh_frame_hdr */
++#define PT_GNU_STACK    0x6474e551 /**< GNU/Linux -> stack prot (RWX or RW) */
++#define PT_GNU_RELRO    0x6474e552 /**< GNU/Linux -> make RO after relocations */
++#define PT_GNU_PROPERTY 0x6474e553 /**< GNU/Linux -> .note.gnu.property */
++
++
+ /* Values for p_flags. */
+ #define PF_X            0x1     /* Executable. */
+ #define PF_W            0x2     /* Writable. */
+--- a/src/VBox/Runtime/common/ldr/ldrELF.cpp
++++ b/src/VBox/Runtime/common/ldr/ldrELF.cpp
+@@ -51,9 +51,11 @@
+ *   Defined Constants And Macros                                                                                                 *
+ *********************************************************************************************************************************/
+ /** Finds an ELF symbol table string. */
+-#define ELF_STR(pHdrs, iStr) ((pHdrs)->pStr + (iStr))
++#define ELF_STR(pHdrs, iStr)        ((pHdrs)->Rel.pStr + (iStr))
++/** Finds an ELF symbol table string. */
++#define ELF_DYN_STR(pHdrs, iStr)    ((pHdrs)->Dyn.pStr + (iStr))
+ /** Finds an ELF section header string. */
+-#define ELF_SH_STR(pHdrs, iStr) ((pHdrs)->pShStr + (iStr))
++#define ELF_SH_STR(pHdrs, iStr)     ((pHdrs)->pShStr + (iStr))
+ 
+ 
+ 
+@@ -62,6 +64,7 @@
+ *********************************************************************************************************************************/
+ #ifdef LOG_ENABLED
+ static const char *rtldrElfGetShdrType(uint32_t iType);
++static const char *rtldrElfGetPhdrType(uint32_t iType);
+ #endif
+ 
+ 
+@@ -81,6 +84,7 @@ static const char *rtldrElfGetShdrType(u
+ 
+ 
+ #ifdef LOG_ENABLED
++
+ /**
+  * Gets the section type.
+  *
+@@ -91,23 +95,51 @@ static const char *rtldrElfGetShdrType(u
+ {
+     switch (iType)
+     {
+-        case SHT_NULL:          return "SHT_NULL";
+-        case SHT_PROGBITS:      return "SHT_PROGBITS";
+-        case SHT_SYMTAB:        return "SHT_SYMTAB";
+-        case SHT_STRTAB:        return "SHT_STRTAB";
+-        case SHT_RELA:          return "SHT_RELA";
+-        case SHT_HASH:          return "SHT_HASH";
+-        case SHT_DYNAMIC:       return "SHT_DYNAMIC";
+-        case SHT_NOTE:          return "SHT_NOTE";
+-        case SHT_NOBITS:        return "SHT_NOBITS";
+-        case SHT_REL:           return "SHT_REL";
+-        case SHT_SHLIB:         return "SHT_SHLIB";
+-        case SHT_DYNSYM:        return "SHT_DYNSYM";
++        RT_CASE_RET_STR(SHT_NULL);
++        RT_CASE_RET_STR(SHT_PROGBITS);
++        RT_CASE_RET_STR(SHT_SYMTAB);
++        RT_CASE_RET_STR(SHT_STRTAB);
++        RT_CASE_RET_STR(SHT_RELA);
++        RT_CASE_RET_STR(SHT_HASH);
++        RT_CASE_RET_STR(SHT_DYNAMIC);
++        RT_CASE_RET_STR(SHT_NOTE);
++        RT_CASE_RET_STR(SHT_NOBITS);
++        RT_CASE_RET_STR(SHT_REL);
++        RT_CASE_RET_STR(SHT_SHLIB);
++        RT_CASE_RET_STR(SHT_DYNSYM);
+         default:
+             return "";
+     }
+ }
+-#endif
++
++/**
++ * Gets the program header type.
++ *
++ * @returns Pointer to read only string.
++ * @param   iType       The section type index.
++ */
++static const char *rtldrElfGetPhdrType(uint32_t iType)
++{
++    switch (iType)
++    {
++        RT_CASE_RET_STR(PT_NULL);
++        RT_CASE_RET_STR(PT_LOAD);
++        RT_CASE_RET_STR(PT_DYNAMIC);
++        RT_CASE_RET_STR(PT_INTERP);
++        RT_CASE_RET_STR(PT_NOTE);
++        RT_CASE_RET_STR(PT_SHLIB);
++        RT_CASE_RET_STR(PT_PHDR);
++        RT_CASE_RET_STR(PT_TLS);
++        RT_CASE_RET_STR(PT_GNU_EH_FRAME);
++        RT_CASE_RET_STR(PT_GNU_STACK);
++        RT_CASE_RET_STR(PT_GNU_RELRO);
++        RT_CASE_RET_STR(PT_GNU_PROPERTY);
++        default:
++            return "";
++    }
++}
++
++#endif /* LOG_ENABLED*/
+ 
+ 
+ /**
+@@ -124,8 +156,6 @@ DECLHIDDEN(int) rtldrELFOpen(PRTLDRREADE
+ {
+     const char *pszLogName = pReader->pfnLogName(pReader); NOREF(pszLogName);
+ 
+-    RT_NOREF_PV(pErrInfo); /** @todo implement */
+-
+     /*
+      * Read the ident to decide if this is 32-bit or 64-bit
+      * and worth dealing with.
+@@ -134,6 +164,7 @@ DECLHIDDEN(int) rtldrELFOpen(PRTLDRREADE
+     int rc = pReader->pfnRead(pReader, &e_ident, sizeof(e_ident), 0);
+     if (RT_FAILURE(rc))
+         return rc;
++
+     if (    e_ident[EI_MAG0] != ELFMAG0
+         ||  e_ident[EI_MAG1] != ELFMAG1
+         ||  e_ident[EI_MAG2] != ELFMAG2
+@@ -141,19 +172,17 @@ DECLHIDDEN(int) rtldrELFOpen(PRTLDRREADE
+         ||  (   e_ident[EI_CLASS] != ELFCLASS32
+              && e_ident[EI_CLASS] != ELFCLASS64)
+        )
+-    {
+-        Log(("RTLdrELF: %s: Unsupported/invalid ident %.*Rhxs\n", pszLogName, sizeof(e_ident), e_ident));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: Unsupported/invalid ident %.*Rhxs", pszLogName, sizeof(e_ident), e_ident);
++
+     if (e_ident[EI_DATA] != ELFDATA2LSB)
+-    {
+-        Log(("RTLdrELF: %s: ELF endian %x is unsupported\n", pszLogName, e_ident[EI_DATA]));
+-        return VERR_LDRELF_ODD_ENDIAN;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_LDRELF_ODD_ENDIAN,
++                                   "%s: ELF endian %x is unsupported", pszLogName, e_ident[EI_DATA]);
++
+     if (e_ident[EI_CLASS] == ELFCLASS32)
+-        rc = rtldrELF32Open(pReader, fFlags, enmArch, phLdrMod);
++        rc = rtldrELF32Open(pReader, fFlags, enmArch, phLdrMod, pErrInfo);
+     else
+-        rc = rtldrELF64Open(pReader, fFlags, enmArch, phLdrMod);
++        rc = rtldrELF64Open(pReader, fFlags, enmArch, phLdrMod, pErrInfo);
+     return rc;
+ }
+ 
+--- a/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h
++++ b/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h
+@@ -29,31 +29,37 @@
+ *   Defined Constants And Macros                                               *
+ *******************************************************************************/
+ #if ELF_MODE == 32
+-#define RTLDRELF_NAME(name) rtldrELF32##name
+-#define RTLDRELF_SUFF(name) name##32
+-#define RTLDRELF_MID(pre,suff) pre##32##suff
+-#define FMT_ELF_ADDR    "%08RX32"
+-#define FMT_ELF_HALF    "%04RX16"
+-#define FMT_ELF_OFF     "%08RX32"
+-#define FMT_ELF_SIZE    "%08RX32"
+-#define FMT_ELF_SWORD   "%RI32"
+-#define FMT_ELF_WORD    "%08RX32"
+-#define FMT_ELF_XWORD   "%08RX32"
+-#define FMT_ELF_SXWORD  "%RI32"
++# define RTLDRELF_NAME(name)    rtldrELF32##name
++# define RTLDRELF_SUFF(name)    name##32
++# define RTLDRELF_MID(pre,suff) pre##32##suff
++# define FMT_ELF_ADDR           "%08RX32"
++# define FMT_ELF_ADDR7          "%07RX32"
++# define FMT_ELF_HALF           "%04RX16"
++# define FMT_ELF_OFF            "%08RX32"
++# define FMT_ELF_SIZE           "%08RX32"
++# define FMT_ELF_SWORD          "%RI32"
++# define FMT_ELF_WORD           "%08RX32"
++# define FMT_ELF_XWORD          "%08RX32"
++# define FMT_ELF_SXWORD         "%RI32"
++# define Elf_Xword              Elf32_Word
++# define Elf_Sxword             Elf32_Sword
+ 
+ #elif ELF_MODE == 64
+-#define RTLDRELF_NAME(name) rtldrELF64##name
+-#define RTLDRELF_SUFF(name) name##64
+-#define RTLDRELF_MID(pre,suff) pre##64##suff
+-#define FMT_ELF_ADDR    "%016RX64"
+-#define FMT_ELF_HALF    "%04RX16"
+-#define FMT_ELF_SHALF   "%RI16"
+-#define FMT_ELF_OFF     "%016RX64"
+-#define FMT_ELF_SIZE    "%016RX64"
+-#define FMT_ELF_SWORD   "%RI32"
+-#define FMT_ELF_WORD    "%08RX32"
+-#define FMT_ELF_XWORD   "%016RX64"
+-#define FMT_ELF_SXWORD  "%RI64"
++# define RTLDRELF_NAME(name)    rtldrELF64##name
++# define RTLDRELF_SUFF(name)    name##64
++# define RTLDRELF_MID(pre,suff) pre##64##suff
++# define FMT_ELF_ADDR           "%016RX64"
++# define FMT_ELF_ADDR7          "%08RX64"
++# define FMT_ELF_HALF           "%04RX16"
++# define FMT_ELF_SHALF          "%RI16"
++# define FMT_ELF_OFF            "%016RX64"
++# define FMT_ELF_SIZE           "%016RX64"
++# define FMT_ELF_SWORD          "%RI32"
++# define FMT_ELF_WORD           "%08RX32"
++# define FMT_ELF_XWORD          "%016RX64"
++# define FMT_ELF_SXWORD         "%RI64"
++# define Elf_Xword              Elf64_Xword
++# define Elf_Sxword             Elf64_Sxword
+ #endif
+ 
+ #define Elf_Ehdr            RTLDRELF_MID(Elf,_Ehdr)
+@@ -74,6 +80,9 @@
+ #define RTLDRMODELF         RTLDRELF_MID(RTLDRMODELF,RT_NOTHING)
+ #define PRTLDRMODELF        RTLDRELF_MID(PRTLDRMODELF,RT_NOTHING)
+ 
++#define RTLDRMODELFSHX      RTLDRELF_MID(RTLDRMODELFSHX,RT_NOTHING)
++#define PRTLDRMODELFSHX     RTLDRELF_MID(PRTLDRMODELFSHX,RT_NOTHING)
++
+ #define ELF_R_SYM(info)     RTLDRELF_MID(ELF,_R_SYM)(info)
+ #define ELF_R_TYPE(info)    RTLDRELF_MID(ELF,_R_TYPE)(info)
+ #define ELF_R_INFO(sym, type) RTLDRELF_MID(ELF,_R_INFO)(sym, type)
+@@ -86,6 +95,20 @@
+ *   Structures and Typedefs                                                    *
+ *******************************************************************************/
+ /**
++ * Extra section info.
++ */
++typedef struct RTLDRMODELFSHX
++{
++    /** The corresponding program header. */
++    uint16_t        idxPhdr;
++    /** The corresponding dynamic section entry (address). */
++    uint16_t        idxDt;
++    /** The DT tag. */
++    uint32_t        uDtTag;
++} RTLDRMODELFSHX;
++typedef RTLDRMODELFSHX *PRTLDRMODELFSHX;
++
++/**
+  * The ELF loader structure.
+  */
+ typedef struct RTLDRMODELF
+@@ -105,36 +128,82 @@ typedef struct RTLDRMODELF
+     /** Unmodified section headers (allocated after paShdrs, so no need to free).
+      * Not valid if the image is DONE. */
+     Elf_Shdr const         *paOrgShdrs;
++    /** Runs parallel to paShdrs and is part of the same allocation. */
++    PRTLDRMODELFSHX         paShdrExtras;
++    /** Base section number, either 1 or zero depending on whether we've
++     *  re-used the NULL entry for .elf.headers in ET_EXEC/ET_DYN. */
++    unsigned                iFirstSect;
++    /** Set if the SHF_ALLOC section headers are in order of sh_addr. */
++    bool                    fShdrInOrder;
+     /** The size of the loaded image. */
+     size_t                  cbImage;
+ 
+     /** The image base address if it's an EXEC or DYN image. */
+     Elf_Addr                LinkAddress;
+ 
+-    /** The symbol section index. */
+-    unsigned                iSymSh;
+-    /** Number of symbols in the table. */
+-    unsigned                cSyms;
+-    /** Pointer to symbol table within RTLDRMODELF::pvBits. */
+-    const Elf_Sym          *paSyms;
+-
+-    /** The string section index. */
+-    unsigned                iStrSh;
+-    /** Size of the string table. */
+-    unsigned                cbStr;
+-    /** Pointer to string table within RTLDRMODELF::pvBits. */
+-    const char             *pStr;
++    struct
++    {
++        /** The symbol section index. */
++        unsigned            iSymSh;
++        /** Number of symbols in the table. */
++        unsigned            cSyms;
++        /** Pointer to symbol table within RTLDRMODELF::pvBits. */
++        const Elf_Sym      *paSyms;
++
++        /** The string section index. */
++        unsigned            iStrSh;
++        /** Size of the string table. */
++        unsigned            cbStr;
++        /** Pointer to string table within RTLDRMODELF::pvBits. */
++        const char         *pStr;
++    } Rel /**< Regular symbols and strings. */
++    , Dyn /**< Dynamic symbols and strings. */;
+ 
+-    /** Size of the section header string table. */
+-    unsigned                cbShStr;
+     /** Pointer to section header string table within RTLDRMODELF::pvBits. */
+     const char             *pShStr;
++    /** Size of the section header string table. */
++    unsigned                cbShStr;
+ 
+     /** The '.eh_frame' section index.  Zero if not searched for, ~0U if not found. */
+     unsigned                iShEhFrame;
+     /** The '.eh_frame_hdr' section index.  Zero if not searched for, ~0U if not found. */
+     unsigned                iShEhFrameHdr;
+-} RTLDRMODELF, *PRTLDRMODELF;
++
++    /** The '.dynamic' / SHT_DYNAMIC section index.  ~0U if not present. */
++    unsigned                iShDynamic;
++    /** Number of entries in paDynamic. */
++    unsigned                cDynamic;
++    /** The dynamic section (NULL for ET_REL). */
++    Elf_Dyn                *paDynamic;
++    /** Program headers (NULL for ET_REL). */
++    Elf_Phdr               *paPhdrs;
++
++    /** Info extracted from PT_DYNAMIC and the program headers. */
++    struct
++    {
++        /** DT_RELA/DT_REL. */
++        Elf_Addr            uPtrRelocs;
++        /** DT_RELASZ/DT_RELSZ. */
++        Elf_Xword           cbRelocs;
++        /** Non-zero if we've seen DT_RELAENT/DT_RELENT. */
++        unsigned            cbRelocEntry;
++        /** DT_RELA or DT_REL. */
++        unsigned            uRelocType;
++        /** The index of the section header matching DT_RELA/DT_REL. */
++        unsigned            idxShRelocs;
++
++        /** DT_JMPREL. */
++        Elf_Addr            uPtrJmpRelocs;
++        /** DT_PLTRELSZ. */
++        Elf_Xword           cbJmpRelocs;
++        /** DT_RELA or DT_REL (if we've seen DT_PLTREL). */
++        unsigned            uJmpRelocType;
++        /** The index of the section header matching DT_JMPREL. */
++        unsigned            idxShJmpRelocs;
++    } DynInfo;
++} RTLDRMODELF;
++/** Pointer to an ELF module instance. */
++typedef RTLDRMODELF *PRTLDRMODELF;
+ 
+ 
+ /**
+@@ -154,11 +223,15 @@ static int RTLDRELF_NAME(MapBits)(PRTLDR
+     if (RT_SUCCESS(rc))
+     {
+         const uint8_t *pu8 = (const uint8_t *)pModElf->pvBits;
+-        if (pModElf->iSymSh != ~0U)
+-            pModElf->paSyms = (const Elf_Sym *)(pu8 + pModElf->paShdrs[pModElf->iSymSh].sh_offset);
+-        if (pModElf->iStrSh != ~0U)
+-            pModElf->pStr   =    (const char *)(pu8 + pModElf->paShdrs[pModElf->iStrSh].sh_offset);
+-        pModElf->pShStr     =    (const char *)(pu8 + pModElf->paShdrs[pModElf->Ehdr.e_shstrndx].sh_offset);
++        if (pModElf->Rel.iSymSh != ~0U)
++            pModElf->Rel.paSyms = (const Elf_Sym *)(pu8 + pModElf->paShdrs[pModElf->Rel.iSymSh].sh_offset);
++        if (pModElf->Rel.iStrSh != ~0U)
++            pModElf->Rel.pStr   =    (const char *)(pu8 + pModElf->paShdrs[pModElf->Rel.iStrSh].sh_offset);
++        if (pModElf->Dyn.iSymSh != ~0U)
++            pModElf->Dyn.paSyms = (const Elf_Sym *)(pu8 + pModElf->paShdrs[pModElf->Dyn.iSymSh].sh_offset);
++        if (pModElf->Dyn.iStrSh != ~0U)
++            pModElf->Dyn.pStr   =    (const char *)(pu8 + pModElf->paShdrs[pModElf->Dyn.iStrSh].sh_offset);
++        pModElf->pShStr         =    (const char *)(pu8 + pModElf->paShdrs[pModElf->Ehdr.e_shstrndx].sh_offset);
+ 
+         /*
+          * Verify that the ends of the string tables have a zero terminator
+@@ -167,8 +240,12 @@ static int RTLDRELF_NAME(MapBits)(PRTLDR
+          * sh_offset and sh_size were verfied in RTLDRELF_NAME(ValidateSectionHeader)() already so they
+          * are safe to use.
+          */
+-        AssertMsgStmt(   pModElf->iStrSh == ~0U
+-                      || pModElf->pStr[pModElf->paShdrs[pModElf->iStrSh].sh_size - 1] == '\0',
++        AssertMsgStmt(   pModElf->Rel.iStrSh == ~0U
++                      || pModElf->Rel.pStr[pModElf->paShdrs[pModElf->Rel.iStrSh].sh_size - 1] == '\0',
++                      ("The string table is not zero terminated!\n"),
++                      rc = VERR_LDRELF_UNTERMINATED_STRING_TAB);
++        AssertMsgStmt(   pModElf->Dyn.iStrSh == ~0U
++                      || pModElf->Dyn.pStr[pModElf->paShdrs[pModElf->Dyn.iStrSh].sh_size - 1] == '\0',
+                       ("The string table is not zero terminated!\n"),
+                       rc = VERR_LDRELF_UNTERMINATED_STRING_TAB);
+         AssertMsgStmt(pModElf->pShStr[pModElf->paShdrs[pModElf->Ehdr.e_shstrndx].sh_size - 1] == '\0',
+@@ -180,10 +257,12 @@ static int RTLDRELF_NAME(MapBits)(PRTLDR
+             /* Unmap. */
+             int rc2 = pModElf->Core.pReader->pfnUnmap(pModElf->Core.pReader, pModElf->pvBits);
+             AssertRC(rc2);
+-            pModElf->pvBits = NULL;
+-            pModElf->paSyms = NULL;
+-            pModElf->pStr   = NULL;
+-            pModElf->pShStr = NULL;
++            pModElf->pvBits     = NULL;
++            pModElf->Rel.paSyms = NULL;
++            pModElf->Rel.pStr   = NULL;
++            pModElf->Dyn.paSyms = NULL;
++            pModElf->Dyn.pStr   = NULL;
++            pModElf->pShStr     = NULL;
+         }
+     }
+     return rc;
+@@ -200,6 +279,101 @@ static int RTLDRELF_NAME(MapBits)(PRTLDR
+  *
+  */
+ 
++/**
++ * Get the symbol and symbol value.
++ *
++ * @returns iprt status code.
++ * @param   pModElf         The ELF loader module instance data.
++ * @param   BaseAddr        The base address which the module is being fixedup to.
++ * @param   pfnGetImport    The callback function to use to resolve imports (aka unresolved externals).
++ * @param   pvUser          User argument to pass to the callback.
++ * @param   iSym            The symbol to get.
++ * @param   ppSym           Where to store the symbol pointer on success. (read only)
++ * @param   pSymValue       Where to store the symbol value on success.
++ */
++static int RTLDRELF_NAME(SymbolExecDyn)(PRTLDRMODELF pModElf, Elf_Addr BaseAddr, PFNRTLDRIMPORT pfnGetImport, void *pvUser,
++                                        Elf_Size iSym, const Elf_Sym **ppSym, Elf_Addr *pSymValue)
++{
++    /*
++     * Validate and find the symbol.
++     */
++    AssertMsgReturn(iSym < pModElf->Dyn.cSyms, ("iSym=%d is an invalid symbol index!\n", iSym), VERR_LDRELF_INVALID_SYMBOL_INDEX);
++    const Elf_Sym *pSym = &pModElf->Dyn.paSyms[iSym];
++    *ppSym = pSym;
++
++    AssertMsgReturn(pSym->st_name < pModElf->Dyn.cbStr,
++                    ("iSym=%d st_name=%d str sh_size=%d\n", iSym, pSym->st_name, pModElf->Dyn.cbStr),
++                    VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET);
++    const char * const pszName = pModElf->Dyn.pStr + pSym->st_name;
++
++    /*
++     * Determine the symbol value.
++     *
++     * Symbols needs different treatment depending on which section their are in.
++     * Undefined and absolute symbols goes into special non-existing sections.
++     */
++    switch (pSym->st_shndx)
++    {
++        /*
++         * Undefined symbol, needs resolving.
++         *
++         * Since ELF has no generic concept of importing from specific module (the OS/2 ELF format
++         * has but that's an OS extension and only applies to programs and dlls), we'll have to ask
++         * the resolver callback to do a global search.
++         */
++        case SHN_UNDEF:
++        {
++            /* Try to resolve the symbol. */
++            RTUINTPTR Value;
++            int rc = pfnGetImport(&pModElf->Core, "", pszName, ~0U, &Value, pvUser);
++            AssertMsgRCReturn(rc, ("Failed to resolve '%s' (iSym=" FMT_ELF_SIZE " rc=%Rrc\n", pszName, iSym, rc), rc);
++
++            *pSymValue = (Elf_Addr)Value;
++            AssertMsgReturn((RTUINTPTR)*pSymValue == Value,
++                            ("Symbol value overflowed! '%s' (iSym=" FMT_ELF_SIZE "\n", pszName, iSym), VERR_SYMBOL_VALUE_TOO_BIG);
++
++            Log2(("rtldrELF: #%-3d - UNDEF " FMT_ELF_ADDR " '%s'\n", iSym, *pSymValue, pszName));
++            break;
++        }
++
++        /*
++         * Absolute symbols needs no fixing since they are, well, absolute.
++         */
++        case SHN_ABS:
++            *pSymValue = pSym->st_value;
++            Log2(("rtldrELF: #%-3d - ABS   " FMT_ELF_ADDR " '%s'\n", iSym, *pSymValue, pszName));
++            break;
++
++        /*
++         * All other symbols are addressed relative the image base in DYN and EXEC binaries.
++         */
++        default:
++            AssertMsgReturn(pSym->st_shndx < pModElf->Ehdr.e_shnum,
++                            ("iSym=%d st_shndx=%d e_shnum=%d pszName=%s\n", iSym, pSym->st_shndx, pModElf->Ehdr.e_shnum, pszName),
++                            VERR_BAD_EXE_FORMAT);
++            *pSymValue = pSym->st_value + BaseAddr;
++            Log2(("rtldrELF: #%-3d - %5d " FMT_ELF_ADDR " '%s'\n", iSym, pSym->st_shndx, *pSymValue, pszName));
++            break;
++    }
++
++    return VINF_SUCCESS;
++}
++
++
++#if   ELF_MODE == 32
++/** Helper for RelocateSectionExecDyn. */
++DECLINLINE(const Elf_Shdr *) RTLDRELF_NAME(RvaToSectionHeader)(PRTLDRMODELF pModElf, Elf_Addr uRva)
++{
++    const Elf_Shdr * const pShdrFirst = pModElf->paShdrs;
++    const Elf_Shdr *pShdr = pShdrFirst + pModElf->Ehdr.e_shnum;
++    while (--pShdr != pShdrFirst)
++        if (uRva - pShdr->sh_addr /*rva*/ < pShdr->sh_size)
++            return pShdr;
++    AssertFailed();
++    return pShdr;
++}
++#endif
++
+ 
+ /**
+  * Applies the fixups for a section in an executable image.
+@@ -230,84 +404,106 @@ static int RTLDRELF_NAME(RelocateSection
+      * Iterate the relocations.
+      * The relocations are stored in an array of Elf32_Rel records and covers the entire relocation section.
+      */
++#if   ELF_MODE == 32
++    const Elf_Shdr   *pShdr    = pModElf->paShdrs;
+     const Elf_Addr    offDelta = BaseAddr - pModElf->LinkAddress;
++#endif
+     const Elf_Reloc  *paRels   = (const Elf_Reloc *)pvRelocs;
+-    const unsigned    iRelMax   = (unsigned)(cbRelocs / sizeof(paRels[0]));
++    const unsigned    iRelMax  = (unsigned)(cbRelocs / sizeof(paRels[0]));
+     AssertMsgReturn(iRelMax == cbRelocs / sizeof(paRels[0]), (FMT_ELF_SIZE "\n", cbRelocs / sizeof(paRels[0])),
+                     VERR_IMAGE_TOO_BIG);
+     for (unsigned iRel = 0; iRel < iRelMax; iRel++)
+     {
+         /*
+-         * Skip R_XXX_NONE entries early to avoid confusion in the symbol
+-         * getter code.
++         * Apply fixups not taking a symbol (will 'continue' rather than 'break').
+          */
++        AssertMsgReturn(paRels[iRel].r_offset < cbSec, (FMT_ELF_ADDR " " FMT_ELF_SIZE "\n", paRels[iRel].r_offset, cbSec),
++                        VERR_LDRELF_INVALID_RELOCATION_OFFSET);
+ #if   ELF_MODE == 32
+-        if (ELF_R_TYPE(paRels[iRel].r_info) == R_386_NONE)
+-            continue;
+-#elif ELF_MODE == 64
+-        if (ELF_R_TYPE(paRels[iRel].r_info) == R_X86_64_NONE)
+-            continue;
++        if (paRels[iRel].r_offset - pShdr->sh_addr /*rva*/ >= pShdr->sh_size)
++            pShdr = RTLDRELF_NAME(RvaToSectionHeader)(pModElf, paRels[iRel].r_offset);
++        static const Elf_Addr s_uZero = 0;
++        const Elf_Addr *pAddrR = RT_LIKELY(pShdr->sh_type != SHT_NOBITS)                     /* Where to read the addend. */
++                               ? (const Elf_Addr *)(pu8SecBaseR + paRels[iRel].r_offset - pShdr->sh_addr /*rva*/
++                                                    + pShdr->sh_offset)
++                               : &s_uZero;
+ #endif
+-
+-        /*
+-         * Validate and find the symbol, resolve undefined ones.
+-         */
+-        Elf_Size iSym = ELF_R_SYM(paRels[iRel].r_info);
+-        if (iSym >= pModElf->cSyms)
+-        {
+-            AssertMsgFailed(("iSym=%d is an invalid symbol index!\n", iSym));
+-            return VERR_LDRELF_INVALID_SYMBOL_INDEX;
+-        }
+-        const Elf_Sym *pSym = &pModElf->paSyms[iSym];
+-        if (pSym->st_name >= pModElf->cbStr)
++        Elf_Addr       *pAddrW =       (Elf_Addr *)(pu8SecBaseW + paRels[iRel].r_offset);    /* Where to write the fixup. */
++        switch (ELF_R_TYPE(paRels[iRel].r_info))
+         {
+-            AssertMsgFailed(("iSym=%d st_name=%d str sh_size=%d\n", iSym, pSym->st_name, pModElf->cbStr));
+-            return VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET;
+-        }
++            /*
++             * Image relative (addend + base).
++             */
++#if   ELF_MODE == 32
++            case R_386_RELATIVE:
++            {
++                const Elf_Addr Value = *pAddrR + BaseAddr;
++                *(uint32_t *)pAddrW = Value;
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_386_RELATIVE Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value));
++                AssertCompile(sizeof(Value) == sizeof(uint32_t));
++                continue;
++            }
++#elif ELF_MODE == 64
++            case R_X86_64_RELATIVE:
++            {
++                const Elf_Addr Value = paRels[iRel].r_addend + BaseAddr;
++                *(uint64_t *)pAddrW = (uint64_t)Value;
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_RELATIVE Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value));
++                AssertCompile(sizeof(Value) == sizeof(uint64_t));
++                continue;
++            }
++#endif
+ 
+-        Elf_Addr SymValue = 0;
+-        if (pSym->st_shndx == SHN_UNDEF)
+-        {
+-            /* Try to resolve the symbol. */
+-            const char *pszName = ELF_STR(pModElf, pSym->st_name);
+-            RTUINTPTR   ExtValue;
+-            int rc = pfnGetImport(&pModElf->Core, "", pszName, ~0U, &ExtValue, pvUser);
+-            AssertMsgRCReturn(rc, ("Failed to resolve '%s' rc=%Rrc\n", pszName, rc), rc);
+-            SymValue = (Elf_Addr)ExtValue;
+-            AssertMsgReturn((RTUINTPTR)SymValue == ExtValue, ("Symbol value overflowed! '%s'\n", pszName),
+-                            VERR_SYMBOL_VALUE_TOO_BIG);
+-            Log2(("rtldrELF: #%-3d - UNDEF " FMT_ELF_ADDR " '%s'\n", iSym, SymValue, pszName));
+-        }
+-        else
+-        {
+-            AssertMsgReturn(pSym->st_shndx < pModElf->Ehdr.e_shnum || pSym->st_shndx == SHN_ABS, ("%#x\n", pSym->st_shndx),
+-                            VERR_LDRELF_INVALID_RELOCATION_OFFSET);
+-#if   ELF_MODE == 64
+-            SymValue = pSym->st_value;
++            /*
++             * R_XXX_NONE.
++             */
++#if   ELF_MODE == 32
++            case R_386_NONE:
++#elif ELF_MODE == 64
++            case R_X86_64_NONE:
+ #endif
++                continue;
+         }
+ 
+-#if   ELF_MODE == 64
+-        /* Calc the value (indexes checked above; assumes SHN_UNDEF == 0). */
+-        Elf_Addr Value;
+-        if (pSym->st_shndx < pModElf->Ehdr.e_shnum)
+-            Value = SymValue + offDelta;
+-        else /* SHN_ABS: */
+-            Value = SymValue + paRels[iRel].r_addend;
+-#endif
++        /*
++         * Validate and find the symbol, resolve undefined ones.
++         */
++        const Elf_Sym  *pSym = NULL; /* shut up gcc */
++        Elf_Addr        SymValue = 0; /* shut up gcc-4 */
++        int rc = RTLDRELF_NAME(SymbolExecDyn)(pModElf, BaseAddr, pfnGetImport, pvUser, ELF_R_SYM(paRels[iRel].r_info), &pSym, &SymValue);
++        if (RT_FAILURE(rc))
++            return rc;
+ 
+         /*
+          * Apply the fixup.
+          */
+-        AssertMsgReturn(paRels[iRel].r_offset < cbSec, (FMT_ELF_ADDR " " FMT_ELF_SIZE "\n", paRels[iRel].r_offset, cbSec), VERR_LDRELF_INVALID_RELOCATION_OFFSET);
+-#if   ELF_MODE == 32
+-        const Elf_Addr *pAddrR = (const Elf_Addr *)(pu8SecBaseR + paRels[iRel].r_offset);    /* Where to read the addend. */
+-#endif
+-        Elf_Addr       *pAddrW =       (Elf_Addr *)(pu8SecBaseW + paRels[iRel].r_offset);    /* Where to write the fixup. */
+         switch (ELF_R_TYPE(paRels[iRel].r_info))
+         {
+ #if   ELF_MODE == 32
+             /*
++             * GOT/PLT.
++             */
++            case R_386_GLOB_DAT:
++            {
++                *(uint32_t *)pAddrW = (uint32_t)SymValue;
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_386_GLOB_DAT Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, SymValue));
++                AssertCompile(sizeof(SymValue) == sizeof(uint32_t));
++                break;
++            }
++
++            case R_386_JMP_SLOT:
++            {
++                *(uint32_t *)pAddrW = (uint32_t)SymValue;
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_386_JMP_SLOT Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, SymValue));
++                AssertCompile(sizeof(SymValue) == sizeof(uint32_t));
++                break;
++            }
++
++            /*
+              * Absolute addressing.
+              */
+             case R_386_32:
+@@ -322,7 +518,8 @@ static int RTLDRELF_NAME(RelocateSection
+                 else
+                     AssertFailedReturn(VERR_LDR_GENERAL_FAILURE); /** @todo SHN_COMMON */
+                 *(uint32_t *)pAddrW = Value;
+-                Log4((FMT_ELF_ADDR": R_386_32   Value=" FMT_ELF_ADDR "\n", SecAddr + paRels[iRel].r_offset + BaseAddr, Value));
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_386_32   Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value));
+                 break;
+             }
+ 
+@@ -344,20 +541,42 @@ static int RTLDRELF_NAME(RelocateSection
+                 }
+                 else
+                     AssertFailedReturn(VERR_LDR_GENERAL_FAILURE); /** @todo SHN_COMMON */
+-                Log4((FMT_ELF_ADDR": R_386_PC32 Value=" FMT_ELF_ADDR "\n", SecAddr + paRels[iRel].r_offset + BaseAddr, Value));
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_386_PC32 Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value));
+                 break;
+             }
+ 
+ #elif ELF_MODE == 64
++            /*
++             * GOT/PLT.
++             */
++            case R_X86_64_GLOB_DAT:
++            {
++                *(uint64_t *)pAddrW = (uint64_t)SymValue;
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_GLOB_DAT Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, SymValue));
++                AssertCompile(sizeof(SymValue) == sizeof(uint64_t));
++                break;
++            }
++
++            case R_X86_64_JMP_SLOT:
++            {
++                *(uint64_t *)pAddrW = (uint64_t)SymValue;
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_JMP_SLOT Value=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, SymValue));
++                AssertCompile(sizeof(SymValue) == sizeof(uint64_t));
++                break;
++            }
+ 
+             /*
+-             * Absolute addressing
++             * Absolute addressing.
+              */
+             case R_X86_64_64:
+             {
++                const Elf_Addr Value = SymValue + paRels[iRel].r_addend;
+                 *(uint64_t *)pAddrW = Value;
+-                Log4((FMT_ELF_ADDR": R_X86_64_64   Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
+-                      SecAddr + paRels[iRel].r_offset + BaseAddr, Value, SymValue));
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_64   Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value, SymValue));
+                 break;
+             }
+ 
+@@ -366,9 +585,10 @@ static int RTLDRELF_NAME(RelocateSection
+              */
+             case R_X86_64_32:
+             {
++                const Elf_Addr Value = SymValue + paRels[iRel].r_addend;
+                 *(uint32_t *)pAddrW = (uint32_t)Value;
+-                Log4((FMT_ELF_ADDR": R_X86_64_32   Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
+-                      SecAddr + paRels[iRel].r_offset + BaseAddr, Value, SymValue));
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_32   Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value, SymValue));
+                 AssertMsgReturn((Elf_Addr)*(uint32_t *)pAddrW == SymValue, ("Value=" FMT_ELF_ADDR "\n", SymValue),
+                                 VERR_SYMBOL_VALUE_TOO_BIG);
+                 break;
+@@ -379,9 +599,10 @@ static int RTLDRELF_NAME(RelocateSection
+              */
+             case R_X86_64_32S:
+             {
++                const Elf_Addr Value = SymValue + paRels[iRel].r_addend;
+                 *(int32_t *)pAddrW = (int32_t)Value;
+-                Log4((FMT_ELF_ADDR": R_X86_64_32S  Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
+-                      SecAddr + paRels[iRel].r_offset + BaseAddr, Value, SymValue));
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_32S  Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
++                      SecAddr + paRels[iRel].r_offset + BaseAddr, paRels[iRel].r_offset, Value, SymValue));
+                 AssertMsgReturn((Elf_Addr)*(int32_t *)pAddrW == Value, ("Value=" FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG); /** @todo check the sign-extending here. */
+                 break;
+             }
+@@ -390,18 +611,17 @@ static int RTLDRELF_NAME(RelocateSection
+              * PC relative addressing.
+              */
+             case R_X86_64_PC32:
+-            case R_X86_64_PLT32: /* binutils commit 451875b4f976a527395e9303224c7881b65e12ed feature/regression. */
+             {
+-                const Elf_Addr SourceAddr = SecAddr + paRels[iRel].r_offset + BaseAddr; /* Where the source really is. */
+-                Value -= SourceAddr;
++                const Elf_Addr SourceAddr = SecAddr  + paRels[iRel].r_offset + BaseAddr; /* Where the source really is. */
++                const Elf_Addr Value      = SymValue + paRels[iRel].r_addend - SourceAddr;
+                 *(int32_t *)pAddrW = (int32_t)Value;
+-                Log4((FMT_ELF_ADDR": R_X86_64_PC32 Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
+-                      SourceAddr, Value, SymValue));
++                Log4((FMT_ELF_ADDR "/" FMT_ELF_ADDR7 ": R_X86_64_PC32 Value=" FMT_ELF_ADDR " SymValue=" FMT_ELF_ADDR "\n",
++                      SourceAddr, paRels[iRel].r_offset, Value, SymValue));
+                 AssertMsgReturn((Elf_Addr)*(int32_t *)pAddrW == Value, ("Value=" FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG); /** @todo check the sign-extending here. */
+                 break;
+             }
+-#endif
+ 
++#endif
+             default:
+                 AssertMsgFailed(("Unknown relocation type: %d (iRel=%d iRelMax=%d)\n",
+                                  ELF_R_TYPE(paRels[iRel].r_info), iRel, iRelMax));
+@@ -442,19 +662,13 @@ static int RTLDRELF_NAME(Symbol)(PRTLDRM
+     /*
+      * Validate and find the symbol.
+      */
+-    if (iSym >= pModElf->cSyms)
+-    {
+-        AssertMsgFailed(("iSym=%d is an invalid symbol index!\n", iSym));
+-        return VERR_LDRELF_INVALID_SYMBOL_INDEX;
+-    }
+-    const Elf_Sym *pSym = &pModElf->paSyms[iSym];
++    AssertMsgReturn(iSym < pModElf->Rel.cSyms, ("iSym=%d is an invalid symbol index!\n", iSym), VERR_LDRELF_INVALID_SYMBOL_INDEX);
++    const Elf_Sym *pSym = &pModElf->Rel.paSyms[iSym];
+     *ppSym = pSym;
+ 
+-    if (pSym->st_name >= pModElf->cbStr)
+-    {
+-        AssertMsgFailed(("iSym=%d st_name=%d str sh_size=%d\n", iSym, pSym->st_name, pModElf->cbStr));
+-        return VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET;
+-    }
++    AssertMsgReturn(pSym->st_name < pModElf->Rel.cbStr,
++                    ("iSym=%d st_name=%d str sh_size=%d\n", iSym, pSym->st_name, pModElf->Rel.cbStr),
++                    VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET);
+     const char *pszName = ELF_STR(pModElf, pSym->st_name);
+ 
+     /*
+@@ -469,7 +683,7 @@ static int RTLDRELF_NAME(Symbol)(PRTLDRM
+          * Undefined symbol, needs resolving.
+          *
+          * Since ELF has no generic concept of importing from specific module (the OS/2 ELF format
+-         * has but that's a OS extension and only applies to programs and dlls), we'll have to ask
++         * has but that's an OS extension and only applies to programs and dlls), we'll have to ask
+          * the resolver callback to do a global search.
+          */
+         case SHN_UNDEF:
+@@ -477,17 +691,12 @@ static int RTLDRELF_NAME(Symbol)(PRTLDRM
+             /* Try to resolve the symbol. */
+             RTUINTPTR Value;
+             int rc = pfnGetImport(&pModElf->Core, "", pszName, ~0U, &Value, pvUser);
+-            if (RT_FAILURE(rc))
+-            {
+-                AssertMsgFailed(("Failed to resolve '%s' rc=%Rrc\n", pszName, rc));
+-                return rc;
+-            }
++            AssertMsgRCReturn(rc, ("Failed to resolve '%s' (iSym=" FMT_ELF_SIZE " rc=%Rrc\n", pszName, iSym, rc), rc);
+             *pSymValue = (Elf_Addr)Value;
+-            if ((RTUINTPTR)*pSymValue != Value)
+-            {
+-                AssertMsgFailed(("Symbol value overflowed! '%s'\n", pszName));
+-                return VERR_SYMBOL_VALUE_TOO_BIG;
+-            }
++
++            AssertMsgReturn((RTUINTPTR)*pSymValue == Value,
++                            ("Symbol value overflowed! '%s' (iSym=" FMT_ELF_SIZE ")\n", pszName, iSym),
++                            VERR_SYMBOL_VALUE_TOO_BIG);
+ 
+             Log2(("rtldrELF: #%-3d - UNDEF " FMT_ELF_ADDR " '%s'\n", iSym, *pSymValue, pszName));
+             break;
+@@ -536,9 +745,9 @@ static int RTLDRELF_NAME(Symbol)(PRTLDRM
+  * @param   pvRelocs        Pointer to where we read the relocations from.
+  * @param   cbRelocs        Size of the relocations.
+  */
+-static int RTLDRELF_NAME(RelocateSection)(PRTLDRMODELF pModElf, Elf_Addr BaseAddr, PFNRTLDRIMPORT pfnGetImport, void *pvUser,
+-                                          const Elf_Addr SecAddr, Elf_Size cbSec, const uint8_t *pu8SecBaseR, uint8_t *pu8SecBaseW,
+-                                          const void *pvRelocs, Elf_Size cbRelocs)
++static int RTLDRELF_NAME(RelocateSectionRel)(PRTLDRMODELF pModElf, Elf_Addr BaseAddr, PFNRTLDRIMPORT pfnGetImport, void *pvUser,
++                                             const Elf_Addr SecAddr, Elf_Size cbSec, const uint8_t *pu8SecBaseR,
++                                             uint8_t *pu8SecBaseW, const void *pvRelocs, Elf_Size cbRelocs)
+ {
+ #if ELF_MODE != 32
+     NOREF(pu8SecBaseR);
+@@ -702,6 +911,18 @@ static DECLCALLBACK(int) RTLDRELF_NAME(C
+         pModElf->paShdrs = NULL;
+     }
+ 
++    if (pModElf->paPhdrs)
++    {
++        RTMemFree(pModElf->paPhdrs);
++        pModElf->paPhdrs = NULL;
++    }
++
++    if (pModElf->paDynamic)
++    {
++        RTMemFree(pModElf->paDynamic);
++        pModElf->paDynamic = NULL;
++    }
++
+     if (pModElf->pvBits)
+     {
+         pModElf->Core.pReader->pfnUnmap(pModElf->Core.pReader, pModElf->pvBits);
+@@ -721,9 +942,9 @@ static DECLCALLBACK(int) RTLDRELF_NAME(D
+ }
+ 
+ 
+-/** @copydoc RTLDROPS::EnumSymbols */
+-static DECLCALLBACK(int) RTLDRELF_NAME(EnumSymbols)(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits, RTUINTPTR BaseAddress,
+-                                                    PFNRTLDRENUMSYMS pfnCallback, void *pvUser)
++/** @copydoc RTLDROPS::pfnEnumSymbols */
++static DECLCALLBACK(int) RTLDRELF_NAME(EnumSymbols)(PRTLDRMODINTERNAL pMod, unsigned fFlags, const void *pvBits,
++                                                    RTUINTPTR BaseAddress, PFNRTLDRENUMSYMS pfnCallback, void *pvUser)
+ {
+     PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod;
+     NOREF(pvBits);
+@@ -744,8 +965,20 @@ static DECLCALLBACK(int) RTLDRELF_NAME(E
+     /*
+      * Enumerate the symbol table.
+      */
+-    const Elf_Sym  *paSyms = pModElf->paSyms;
+-    unsigned        cSyms  = pModElf->cSyms;
++    const Elf_Sym  *paSyms  = pModElf->Rel.paSyms;
++    unsigned        cSyms   = pModElf->Rel.cSyms;
++    const char     *pszzStr = pModElf->Rel.pStr;
++    unsigned        cbStr   = pModElf->Rel.cbStr;
++    if (   (   !(fFlags & RTLDR_ENUM_SYMBOL_FLAGS_ALL)
++            && pModElf->Dyn.cSyms > 0)
++        || cSyms == 0)
++    {
++        paSyms  = pModElf->Dyn.paSyms;
++        cSyms   = pModElf->Dyn.cSyms;
++        pszzStr = pModElf->Dyn.pStr;
++        cbStr   = pModElf->Dyn.cbStr;
++    }
++
+     for (unsigned iSym = 1; iSym < cSyms; iSym++)
+     {
+         /*
+@@ -774,22 +1007,21 @@ static DECLCALLBACK(int) RTLDRELF_NAME(E
+                 return VERR_BAD_EXE_FORMAT;
+             }
+ 
+-            AssertMsgReturn(paSyms[iSym].st_name < pModElf->cbStr,
++            AssertMsgReturn(paSyms[iSym].st_name < cbStr,
+                             ("String outside string table! iSym=%d paSyms[iSym].st_name=%#x\n", iSym, paSyms[iSym].st_name),
+                             VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET);
++            const char * const pszName = pszzStr + paSyms[iSym].st_name;
+ 
+-            const char *pszName = ELF_STR(pModElf, paSyms[iSym].st_name);
+             /* String termination was already checked when the string table was mapped. */
+-            if (    (pszName && *pszName)
++            if (    *pszName != '\0'
+                 &&  (   (fFlags & RTLDR_ENUM_SYMBOL_FLAGS_ALL)
+-                     || ELF_ST_BIND(paSyms[iSym].st_info) == STB_GLOBAL)
+-               )
++                     || ELF_ST_BIND(paSyms[iSym].st_info) == STB_GLOBAL) )
+             {
+                 /*
+                  * Call back.
+                  */
+                 AssertMsgReturn(Value == (RTUINTPTR)Value, (FMT_ELF_ADDR "\n", Value), VERR_SYMBOL_VALUE_TOO_BIG);
+-                rc = pfnCallback(pMod, pszName, ~0U, (RTUINTPTR)Value, pvUser);
++                rc = pfnCallback(pMod, pszName, iSym, (RTUINTPTR)Value, pvUser);
+                 if (rc)
+                     return rc;
+             }
+@@ -820,13 +1052,11 @@ static DECLCALLBACK(int) RTLDRELF_NAME(G
+     switch (pModElf->Ehdr.e_type)
+     {
+         case ET_REL:
++        case ET_DYN:
+             break;
+         case ET_EXEC:
+             Log(("RTLdrELF: %s: Executable images are not supported yet!\n", pModElf->Core.pReader->pfnLogName(pModElf->Core.pReader)));
+             return VERR_LDRELF_EXEC;
+-        case ET_DYN:
+-            Log(("RTLdrELF: %s: Dynamic images are not supported yet!\n", pModElf->Core.pReader->pfnLogName(pModElf->Core.pReader)));
+-            return VERR_LDRELF_DYN;
+         default: AssertFailedReturn(VERR_BAD_EXE_FORMAT);
+     }
+ 
+@@ -885,13 +1115,11 @@ static DECLCALLBACK(int) RTLDRELF_NAME(R
+     switch (pModElf->Ehdr.e_type)
+     {
+         case ET_REL:
++        case ET_DYN:
+             break;
+         case ET_EXEC:
+             Log(("RTLdrELF: %s: Executable images are not supported yet!\n", pszLogName));
+             return VERR_LDRELF_EXEC;
+-        case ET_DYN:
+-            Log(("RTLdrELF: %s: Dynamic images are not supported yet!\n", pszLogName));
+-            return VERR_LDRELF_DYN;
+         default: AssertFailedReturn(VERR_BAD_EXE_FORMAT);
+     }
+ 
+@@ -910,8 +1138,9 @@ static DECLCALLBACK(int) RTLDRELF_NAME(R
+ 
+     /*
+      * Iterate the sections looking for interesting SHT_REL[A] sections.
+-     * SHT_REL[A] sections have the section index of the section they contain fixups
+-     * for in the sh_info member.
++     *
++     * In ET_REL files the SHT_REL[A] sections have the section index of
++     * the section they contain fixups for in the sh_info member.
+      */
+     const Elf_Shdr *paShdrs = pModElf->paShdrs;
+     Log2(("rtLdrElf: %s: Fixing up image\n", pszLogName));
+@@ -928,36 +1157,37 @@ static DECLCALLBACK(int) RTLDRELF_NAME(R
+         if (pShdrRel->sh_type != SHT_RELA)
+ #endif
+             continue;
+-        if (pShdrRel->sh_info >= pModElf->Ehdr.e_shnum)
+-            continue;
+-        const Elf_Shdr *pShdr = &paShdrs[pShdrRel->sh_info]; /* the section to fixup. */
+-        if (!(pShdr->sh_flags & SHF_ALLOC))
+-            continue;
+-
+-        /*
+-         * Relocate the section.
+-         */
+-        Log2(("rtldrELF: %s: Relocation records for #%d [%s] (sh_info=%d sh_link=%d) found in #%d [%s] (sh_info=%d sh_link=%d)\n",
+-              pszLogName, (int)pShdrRel->sh_info, ELF_SH_STR(pModElf, pShdr->sh_name), (int)pShdr->sh_info, (int)pShdr->sh_link,
+-              iShdr, ELF_SH_STR(pModElf, pShdrRel->sh_name), (int)pShdrRel->sh_info, (int)pShdrRel->sh_link));
+-
+-        /** @todo Make RelocateSection a function pointer so we can select the one corresponding to the machine when opening the image. */
+         if (pModElf->Ehdr.e_type == ET_REL)
+-            rc = RTLDRELF_NAME(RelocateSection)(pModElf, BaseAddr, pfnGetImport, pvUser,
+-                                                pShdr->sh_addr,
+-                                                pShdr->sh_size,
+-                                                (const uint8_t *)pModElf->pvBits + pShdr->sh_offset,
+-                                                (uint8_t *)pvBits + pShdr->sh_addr,
+-                                                (const uint8_t *)pModElf->pvBits + pShdrRel->sh_offset,
+-                                                pShdrRel->sh_size);
++        {
++            if (pShdrRel->sh_info >= pModElf->Ehdr.e_shnum)
++                continue;
++            const Elf_Shdr *pShdr = &paShdrs[pShdrRel->sh_info]; /* the section to fixup. */
++            if (!(pShdr->sh_flags & SHF_ALLOC))
++                continue;
++
++            /*
++             * Relocate the section.
++             */
++            Log2(("rtldrELF: %s: Relocation records for #%d [%s] (sh_info=%d sh_link=%d) found in #%d [%s] (sh_info=%d sh_link=%d)\n",
++                  pszLogName, (int)pShdrRel->sh_info, ELF_SH_STR(pModElf, pShdr->sh_name), (int)pShdr->sh_info, (int)pShdr->sh_link,
++                  iShdr, ELF_SH_STR(pModElf, pShdrRel->sh_name), (int)pShdrRel->sh_info, (int)pShdrRel->sh_link));
++
++            rc = RTLDRELF_NAME(RelocateSectionRel)(pModElf, BaseAddr, pfnGetImport, pvUser,
++                                                   pShdr->sh_addr,
++                                                   pShdr->sh_size,
++                                                   (const uint8_t *)pModElf->pvBits + pShdr->sh_offset,
++                                                   (uint8_t *)pvBits + pShdr->sh_addr,
++                                                   (const uint8_t *)pModElf->pvBits + pShdrRel->sh_offset,
++                                                   pShdrRel->sh_size);
++        }
+         else
+             rc = RTLDRELF_NAME(RelocateSectionExecDyn)(pModElf, BaseAddr, pfnGetImport, pvUser,
+-                                                       pShdr->sh_addr,
+-                                                       pShdr->sh_size,
+-                                                       (const uint8_t *)pModElf->pvBits + pShdr->sh_offset,
+-                                                       (uint8_t *)pvBits + pShdr->sh_addr,
++                                                       0, (Elf_Size)pModElf->cbImage,
++                                                       (const uint8_t *)pModElf->pvBits /** @todo file offset ?? */,
++                                                       (uint8_t *)pvBits,
+                                                        (const uint8_t *)pModElf->pvBits + pShdrRel->sh_offset,
+                                                        pShdrRel->sh_size);
++
+         if (RT_FAILURE(rc))
+             return rc;
+     }
+@@ -1016,11 +1246,20 @@ static DECLCALLBACK(int) RTLDRELF_NAME(G
+     /*
+      * Calc all kinds of pointers before we start iterating the symbol table.
+      */
+-    const Elf_Sym     *paSyms = pModElf->paSyms;
+-    unsigned            cSyms = pModElf->cSyms;
++    const Elf_Sym *paSyms  = pModElf->Rel.paSyms;
++    unsigned       cSyms   = pModElf->Rel.cSyms;
++    const char    *pszzStr = pModElf->Rel.pStr;
++    unsigned       cbStr   = pModElf->Rel.cbStr;
++    if (pModElf->Dyn.cSyms > 0)
++    {
++        paSyms  = pModElf->Dyn.paSyms;
++        cSyms   = pModElf->Dyn.cSyms;
++        pszzStr = pModElf->Dyn.pStr;
++        cbStr   = pModElf->Dyn.cbStr;
++    }
++
+     if (iOrdinal == UINT32_MAX)
+     {
+-        const char     *pStr  = pModElf->pStr;
+         for (unsigned iSym = 1; iSym < cSyms; iSym++)
+         {
+             /* Undefined symbols are not exports, they are imports. */
+@@ -1029,18 +1268,13 @@ static DECLCALLBACK(int) RTLDRELF_NAME(G
+                      || ELF_ST_BIND(paSyms[iSym].st_info) == STB_WEAK))
+             {
+                 /* Validate the name string and try match with it. */
+-                if (paSyms[iSym].st_name < pModElf->cbStr)
+-                {
+-                    if (!strcmp(pszSymbol, pStr + paSyms[iSym].st_name))
+-                    {
+-                        /* matched! */
+-                        return RTLDRELF_NAME(ReturnSymbol)(pModElf, &paSyms[iSym], uBaseAddr, pValue);
+-                    }
+-                }
+-                else
++                AssertMsgReturn(paSyms[iSym].st_name < cbStr,
++                                ("String outside string table! iSym=%d paSyms[iSym].st_name=%#x\n", iSym, paSyms[iSym].st_name),
++                                VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET);
++                if (!strcmp(pszSymbol, pszzStr + paSyms[iSym].st_name))
+                 {
+-                    AssertMsgFailed(("String outside string table! iSym=%d paSyms[iSym].st_name=%#x\n", iSym, paSyms[iSym].st_name));
+-                    return VERR_LDRELF_INVALID_SYMBOL_NAME_OFFSET;
++                    /* matched! */
++                    return RTLDRELF_NAME(ReturnSymbol)(pModElf, &paSyms[iSym], uBaseAddr, pValue);
+                 }
+             }
+         }
+@@ -1127,23 +1361,47 @@ static DECLCALLBACK(int) RTLDRELF_NAME(E
+ 
+ 
+ /**
+- * Helper that locates the first allocated section.
++ * Locate the next allocated section by RVA (sh_addr).
++ *
++ * This is a helper for EnumSegments and SegOffsetToRva.
+  *
+  * @returns Pointer to the section header if found, NULL if none.
+- * @param   pShdr   The section header to start searching at.
+- * @param   cLeft   The number of section headers left to search. Can be 0.
++ * @param   pModElf     The module instance.
++ * @param   iShdrCur    The current section header.
+  */
+-static const Elf_Shdr *RTLDRELF_NAME(GetFirstAllocatedSection)(const Elf_Shdr *pShdr, unsigned cLeft)
++static const Elf_Shdr *RTLDRELF_NAME(GetNextAllocatedSection)(PRTLDRMODELF pModElf, unsigned iShdrCur)
+ {
+-    while (cLeft-- > 0)
++    unsigned const          cShdrs  = pModElf->Ehdr.e_shnum;
++    const Elf_Shdr * const  paShdrs = pModElf->paShdrs;
++    if (pModElf->fShdrInOrder)
++    {
++        for (unsigned iShdr = iShdrCur + 1; iShdr < cShdrs; iShdr++)
++            if (paShdrs[iShdr].sh_flags & SHF_ALLOC)
++                return &paShdrs[iShdr];
++    }
++    else
+     {
+-        if (pShdr->sh_flags & SHF_ALLOC)
+-            return pShdr;
+-        pShdr++;
++        Elf_Addr const uEndCur = paShdrs[iShdrCur].sh_addr + paShdrs[iShdrCur].sh_size;
++        Elf_Addr       offBest = ~(Elf_Addr)0;
++        unsigned       iBest   = cShdrs;
++        for (unsigned iShdr = pModElf->iFirstSect; iShdr < cShdrs; iShdr++)
++            if ((paShdrs[iShdr].sh_flags & SHF_ALLOC) && iShdr != iShdrCur)
++            {
++                Elf_Addr const offDelta = paShdrs[iShdr].sh_addr - uEndCur;
++                if (   offDelta < offBest
++                    && paShdrs[iShdr].sh_addr >= uEndCur)
++                {
++                    offBest = offDelta;
++                    iBest   = iShdr;
++                }
++            }
++        if (iBest < cShdrs)
++            return &paShdrs[iBest];
+     }
+     return NULL;
+ }
+ 
++
+ /** @copydoc RTLDROPS::pfnEnumSegments. */
+ static DECLCALLBACK(int) RTLDRELF_NAME(EnumSegments)(PRTLDRMODINTERNAL pMod, PFNRTLDRENUMSEGS pfnCallback, void *pvUser)
+ {
+@@ -1163,15 +1421,23 @@ static DECLCALLBACK(int) RTLDRELF_NAME(E
+     Elf_Addr        uPrevMappedRva = 0;
+     const Elf_Shdr *paShdrs    = pModElf->paShdrs;
+     const Elf_Shdr *paOrgShdrs = pModElf->paOrgShdrs;
+-    for (unsigned iShdr = 1; iShdr < pModElf->Ehdr.e_shnum; iShdr++)
++    for (unsigned iShdr = pModElf->iFirstSect; iShdr < pModElf->Ehdr.e_shnum; iShdr++)
+     {
+         RTLDRSEG Seg;
+-        Seg.pszName     = ELF_SH_STR(pModElf, paShdrs[iShdr].sh_name);
+-        Seg.cchName     = (uint32_t)strlen(Seg.pszName);
+-        if (Seg.cchName == 0)
++        if (iShdr != 0)
++        {
++            Seg.pszName     = ELF_SH_STR(pModElf, paShdrs[iShdr].sh_name);
++            Seg.cchName     = (uint32_t)strlen(Seg.pszName);
++            if (Seg.cchName == 0)
++            {
++                Seg.pszName = szName;
++                Seg.cchName = (uint32_t)RTStrPrintf(szName, sizeof(szName), "UnamedSect%02u", iShdr);
++            }
++        }
++        else
+         {
+-            Seg.pszName = szName;
+-            Seg.cchName = (uint32_t)RTStrPrintf(szName, sizeof(szName), "UnamedSect%02u", iShdr);
++            Seg.pszName = ".elf.headers";
++            Seg.cchName = 12;
+         }
+         Seg.SelFlat     = 0;
+         Seg.Sel16bit    = 0;
+@@ -1187,14 +1453,11 @@ static DECLCALLBACK(int) RTLDRELF_NAME(E
+         {
+             Seg.LinkAddress = paOrgShdrs[iShdr].sh_addr;
+             Seg.RVA         = paShdrs[iShdr].sh_addr;
+-            const Elf_Shdr *pShdr2 = RTLDRELF_NAME(GetFirstAllocatedSection)(&paShdrs[iShdr + 1],
+-                                                                             pModElf->Ehdr.e_shnum - iShdr - 1);
+-            if (   pShdr2
+-                && pShdr2->sh_addr >= paShdrs[iShdr].sh_addr
+-                && Seg.RVA >= uPrevMappedRva)
++            const Elf_Shdr *pShdr2 = RTLDRELF_NAME(GetNextAllocatedSection)(pModElf, iShdr);
++            if (pShdr2)
+                 Seg.cbMapped = pShdr2->sh_addr - paShdrs[iShdr].sh_addr;
+             else
+-                Seg.cbMapped = RT_MAX(paShdrs[iShdr].sh_size, paShdrs[iShdr].sh_addralign);
++                Seg.cbMapped = pModElf->cbImage - paShdrs[iShdr].sh_addr;
+             uPrevMappedRva = Seg.RVA;
+         }
+         else
+@@ -1230,10 +1493,11 @@ static DECLCALLBACK(int) RTLDRELF_NAME(L
+     PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod;
+ 
+     const Elf_Shdr *pShdrEnd = NULL;
+-    unsigned        cLeft    = pModElf->Ehdr.e_shnum - 1;
+-    const Elf_Shdr *pShdr    = &pModElf->paOrgShdrs[cLeft];
++    unsigned        cLeft    = pModElf->Ehdr.e_shnum - pModElf->iFirstSect;
++    const Elf_Shdr *pShdr    = &pModElf->paOrgShdrs[pModElf->Ehdr.e_shnum];
+     while (cLeft-- > 0)
+     {
++        pShdr--;
+         if (pShdr->sh_flags & SHF_ALLOC)
+         {
+             RTLDRADDR offSeg = LinkAddress - pShdr->sh_addr;
+@@ -1246,13 +1510,12 @@ static DECLCALLBACK(int) RTLDRELF_NAME(L
+             if (offSeg == pShdr->sh_size)
+                 pShdrEnd = pShdr;
+         }
+-        pShdr--;
+     }
+ 
+     if (pShdrEnd)
+     {
+         *poffSeg = pShdrEnd->sh_size;
+-        *piSeg   = pShdrEnd - pModElf->paOrgShdrs - 1;
++        *piSeg   = pShdrEnd - pModElf->paOrgShdrs - pModElf->iFirstSect;
+         return VINF_SUCCESS;
+     }
+ 
+@@ -1268,7 +1531,7 @@ static DECLCALLBACK(int) RTLDRELF_NAME(L
+     RTLDRADDR    offSeg;
+     int rc = RTLDRELF_NAME(LinkAddressToSegOffset)(pMod, LinkAddress, &iSeg, &offSeg);
+     if (RT_SUCCESS(rc))
+-        *pRva = pModElf->paShdrs[iSeg + 1].sh_addr + offSeg;
++        *pRva = pModElf->paShdrs[iSeg + pModElf->iFirstSect].sh_addr + offSeg;
+     return rc;
+ }
+ 
+@@ -1278,14 +1541,13 @@ static DECLCALLBACK(int) RTLDRELF_NAME(S
+                                                        PRTLDRADDR pRva)
+ {
+     PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod;
+-    if (iSeg >= pModElf->Ehdr.e_shnum - 1U)
++    if (iSeg >= pModElf->Ehdr.e_shnum - pModElf->iFirstSect)
+         return VERR_LDR_INVALID_SEG_OFFSET;
+ 
+-    iSeg++; /* skip section 0 */
++    iSeg += pModElf->iFirstSect; /* skip section 0 if not used */
+     if (offSeg > pModElf->paShdrs[iSeg].sh_size)
+     {
+-        const Elf_Shdr *pShdr2 = RTLDRELF_NAME(GetFirstAllocatedSection)(&pModElf->paShdrs[iSeg + 1],
+-                                                                         pModElf->Ehdr.e_shnum - iSeg - 1);
++        const Elf_Shdr *pShdr2 = RTLDRELF_NAME(GetNextAllocatedSection)(pModElf, iSeg);
+         if (   !pShdr2
+             || offSeg > (pShdr2->sh_addr - pModElf->paShdrs[iSeg].sh_addr))
+             return VERR_LDR_INVALID_SEG_OFFSET;
+@@ -1303,13 +1565,13 @@ static DECLCALLBACK(int) RTLDRELF_NAME(S
+ static DECLCALLBACK(int) RTLDRELF_NAME(RvaToSegOffset)(PRTLDRMODINTERNAL pMod, RTLDRADDR Rva,
+                                                        uint32_t *piSeg, PRTLDRADDR poffSeg)
+ {
+-    PRTLDRMODELF pModElf = (PRTLDRMODELF)pMod;
+-
++    PRTLDRMODELF    pModElf  = (PRTLDRMODELF)pMod;
+     Elf_Addr        PrevAddr = 0;
+-    unsigned        cLeft    = pModElf->Ehdr.e_shnum - 1;
+-    const Elf_Shdr *pShdr    = &pModElf->paShdrs[cLeft];
++    unsigned        cLeft    = pModElf->Ehdr.e_shnum - pModElf->iFirstSect;
++    const Elf_Shdr *pShdr    = &pModElf->paShdrs[pModElf->Ehdr.e_shnum];
+     while (cLeft-- > 0)
+     {
++        pShdr--;
+         if (pShdr->sh_flags & SHF_ALLOC)
+         {
+             Elf_Addr    cbSeg  = PrevAddr ? PrevAddr - pShdr->sh_addr : pShdr->sh_size;
+@@ -1322,7 +1584,6 @@ static DECLCALLBACK(int) RTLDRELF_NAME(R
+             }
+             PrevAddr = pShdr->sh_addr;
+         }
+-        pShdr--;
+     }
+ 
+     return VERR_LDR_INVALID_RVA;
+@@ -1413,14 +1674,14 @@ static DECLCALLBACK(int) RTLDRELF_NAME(R
+          * Apply the relocations.
+          */
+         if (pThis->Ehdr.e_type == ET_REL)
+-            rc = RTLDRELF_NAME(RelocateSection)(pThis, pThis->LinkAddress,
+-                                                RTLDRELF_NAME(GetImportStubCallback), NULL /*pvUser*/,
+-                                                pThis->paShdrs[iDbgInfo].sh_addr,
+-                                                pThis->paShdrs[iDbgInfo].sh_size,
+-                                                (const uint8_t *)pvBuf,
+-                                                (uint8_t *)pvBuf,
+-                                                pbRelocs,
+-                                                pThis->paShdrs[iRelocs].sh_size);
++            rc = RTLDRELF_NAME(RelocateSectionRel)(pThis, pThis->LinkAddress,
++                                                   RTLDRELF_NAME(GetImportStubCallback), NULL /*pvUser*/,
++                                                   pThis->paShdrs[iDbgInfo].sh_addr,
++                                                   pThis->paShdrs[iDbgInfo].sh_size,
++                                                   (const uint8_t *)pvBuf,
++                                                   (uint8_t *)pvBuf,
++                                                   pbRelocs,
++                                                   pThis->paShdrs[iRelocs].sh_size);
+         else
+             rc = RTLDRELF_NAME(RelocateSectionExecDyn)(pThis, pThis->LinkAddress,
+                                                        RTLDRELF_NAME(GetImportStubCallback), NULL /*pvUser*/,
+@@ -1562,11 +1823,13 @@ static RTLDROPS RTLDRELF_MID(s_rtldrElf,
+  *
+  * @returns iprt status code.
+  * @param   pEhdr       Pointer to the ELF header.
+- * @param   pszLogName  The log name.
+  * @param   cbRawImage  The size of the raw image.
++ * @param   pszLogName  The log name.
++ * @param   penmArch    Where to return the architecture.
++ * @param   pErrInfo    Where to return extended error info. Optional.
+  */
+-static int RTLDRELF_NAME(ValidateElfHeader)(const Elf_Ehdr *pEhdr, const char *pszLogName, uint64_t cbRawImage,
+-                                            PRTLDRARCH penmArch)
++static int RTLDRELF_NAME(ValidateElfHeader)(const Elf_Ehdr *pEhdr, uint64_t cbRawImage, const char *pszLogName,
++                                            PRTLDRARCH penmArch, PRTERRINFO pErrInfo)
+ {
+     Log3(("RTLdrELF:     e_ident: %.*Rhxs\n"
+           "RTLdrELF:      e_type: " FMT_ELF_HALF "\n"
+@@ -1588,48 +1851,31 @@ static int RTLDRELF_NAME(ValidateElfHead
+     if (    pEhdr->e_ident[EI_MAG0] != ELFMAG0
+         ||  pEhdr->e_ident[EI_MAG1] != ELFMAG1
+         ||  pEhdr->e_ident[EI_MAG2] != ELFMAG2
+-        ||  pEhdr->e_ident[EI_MAG3] != ELFMAG3
+-       )
+-    {
+-        Log(("RTLdrELF: %s: Invalid ELF magic (%.*Rhxs)\n", pszLogName, sizeof(pEhdr->e_ident), pEhdr->e_ident)); NOREF(pszLogName);
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        ||  pEhdr->e_ident[EI_MAG3] != ELFMAG3)
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: Invalid ELF magic (%.*Rhxs)", pszLogName, sizeof(pEhdr->e_ident), pEhdr->e_ident);
+     if (pEhdr->e_ident[EI_CLASS] != RTLDRELF_SUFF(ELFCLASS))
+-    {
+-        Log(("RTLdrELF: %s: Invalid ELF class (%.*Rhxs)\n", pszLogName, sizeof(pEhdr->e_ident), pEhdr->e_ident));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: Invalid ELF class (%.*Rhxs)", pszLogName, sizeof(pEhdr->e_ident), pEhdr->e_ident);
+     if (pEhdr->e_ident[EI_DATA] != ELFDATA2LSB)
+-    {
+-        Log(("RTLdrELF: %s: ELF endian %x is unsupported\n", pszLogName, pEhdr->e_ident[EI_DATA]));
+-        return VERR_LDRELF_ODD_ENDIAN;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_LDRELF_ODD_ENDIAN,
++                                   "%s: ELF endian %x is unsupported", pszLogName, pEhdr->e_ident[EI_DATA]);
+     if (pEhdr->e_version != EV_CURRENT)
+-    {
+-        Log(("RTLdrELF: %s: ELF version %x is unsupported\n", pszLogName, pEhdr->e_version));
+-        return VERR_LDRELF_VERSION;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_LDRELF_VERSION,
++                                   "%s: ELF version %x is unsupported", pszLogName, pEhdr->e_version);
+ 
+     if (sizeof(Elf_Ehdr) != pEhdr->e_ehsize)
+-    {
+-        Log(("RTLdrELF: %s: Elf header e_ehsize is %d expected %d!\n",
+-             pszLogName, pEhdr->e_ehsize, sizeof(Elf_Ehdr)));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: Elf header e_ehsize is %d expected %d!", pszLogName, pEhdr->e_ehsize, sizeof(Elf_Ehdr));
+     if (    sizeof(Elf_Phdr) != pEhdr->e_phentsize
+-        &&  (    pEhdr->e_phnum != 0
+-             ||  pEhdr->e_type == ET_DYN))
+-    {
+-        Log(("RTLdrELF: %s: Elf header e_phentsize is %d expected %d!\n",
+-             pszLogName, pEhdr->e_phentsize, sizeof(Elf_Phdr)));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        &&  (   pEhdr->e_phnum != 0
++             || pEhdr->e_type == ET_DYN
++             || pEhdr->e_type == ET_EXEC))
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Elf header e_phentsize is %d expected %d!",
++                                   pszLogName, pEhdr->e_phentsize, sizeof(Elf_Phdr));
+     if (sizeof(Elf_Shdr) != pEhdr->e_shentsize)
+-    {
+-        Log(("RTLdrELF: %s: Elf header e_shentsize is %d expected %d!\n",
+-             pszLogName, pEhdr->e_shentsize, sizeof(Elf_Shdr)));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Elf header e_shentsize is %d expected %d!",
++                                   pszLogName, pEhdr->e_shentsize, sizeof(Elf_Shdr));
+ 
+     switch (pEhdr->e_type)
+     {
+@@ -1638,8 +1884,8 @@ static int RTLDRELF_NAME(ValidateElfHead
+         case ET_DYN:
+             break;
+         default:
+-            Log(("RTLdrELF: %s: image type %#x is not supported!\n", pszLogName, pEhdr->e_type));
+-            return VERR_BAD_EXE_FORMAT;
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: image type %#x is not supported!",
++                                       pszLogName, pEhdr->e_type);
+     }
+ 
+     switch (pEhdr->e_machine)
+@@ -1655,52 +1901,43 @@ static int RTLDRELF_NAME(ValidateElfHead
+             break;
+ #endif
+         default:
+-            Log(("RTLdrELF: %s: machine type %u is not supported!\n", pszLogName, pEhdr->e_machine));
+-            return VERR_LDRELF_MACHINE;
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_LDRELF_MACHINE,
++                                       "%s: machine type %u is not supported!", pszLogName, pEhdr->e_machine);
+     }
+ 
+     if (    pEhdr->e_phoff < pEhdr->e_ehsize
+         &&  !(pEhdr->e_phoff && pEhdr->e_phnum)
+         &&  pEhdr->e_phnum)
+-    {
+-        Log(("RTLdrELF: %s: The program headers overlap with the ELF header! e_phoff=" FMT_ELF_OFF "\n",
+-             pszLogName, pEhdr->e_phoff));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: The program headers overlap with the ELF header! e_phoff=" FMT_ELF_OFF,
++                                   pszLogName, pEhdr->e_phoff);
+     if (    pEhdr->e_phoff + pEhdr->e_phnum * pEhdr->e_phentsize > cbRawImage
+         ||  pEhdr->e_phoff + pEhdr->e_phnum * pEhdr->e_phentsize < pEhdr->e_phoff)
+-    {
+-        Log(("RTLdrELF: %s: The program headers extends beyond the file! e_phoff=" FMT_ELF_OFF " e_phnum=" FMT_ELF_HALF "\n",
+-             pszLogName, pEhdr->e_phoff, pEhdr->e_phnum));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: The program headers extends beyond the file! e_phoff=" FMT_ELF_OFF " e_phnum=" FMT_ELF_HALF,
++                                   pszLogName, pEhdr->e_phoff, pEhdr->e_phnum);
+ 
+ 
+     if (    pEhdr->e_shoff < pEhdr->e_ehsize
+         &&  !(pEhdr->e_shoff && pEhdr->e_shnum))
+-    {
+-        Log(("RTLdrELF: %s: The section headers overlap with the ELF header! e_shoff=" FMT_ELF_OFF "\n",
+-             pszLogName, pEhdr->e_shoff));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: The section headers overlap with the ELF header! e_shoff=" FMT_ELF_OFF,
++                                   pszLogName, pEhdr->e_shoff);
+     if (    pEhdr->e_shoff + pEhdr->e_shnum * pEhdr->e_shentsize > cbRawImage
+         ||  pEhdr->e_shoff + pEhdr->e_shnum * pEhdr->e_shentsize < pEhdr->e_shoff)
+-    {
+-        Log(("RTLdrELF: %s: The section headers extends beyond the file! e_shoff=" FMT_ELF_OFF " e_shnum=" FMT_ELF_HALF "\n",
+-             pszLogName, pEhdr->e_shoff, pEhdr->e_shnum));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: The section headers extends beyond the file! e_shoff=" FMT_ELF_OFF " e_shnum=" FMT_ELF_HALF,
++                                   pszLogName, pEhdr->e_shoff, pEhdr->e_shnum);
+ 
+     if (pEhdr->e_shstrndx == 0 || pEhdr->e_shstrndx > pEhdr->e_shnum)
+-    {
+-        Log(("RTLdrELF: %s: The section headers string table is out of bounds! e_shstrndx=" FMT_ELF_HALF " e_shnum=" FMT_ELF_HALF "\n",
+-             pszLogName, pEhdr->e_shstrndx, pEhdr->e_shnum));
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: The section headers string table is out of bounds! e_shstrndx=" FMT_ELF_HALF " e_shnum=" FMT_ELF_HALF,
++                                   pszLogName, pEhdr->e_shstrndx, pEhdr->e_shnum);
+ 
+     return VINF_SUCCESS;
+ }
+ 
++
+ /**
+  * Gets the section header name.
+  *
+@@ -1741,10 +1978,12 @@ const char *RTLDRELF_NAME(GetSHdrName)(P
+  * @param   pModElf     Pointer to the module structure.
+  * @param   iShdr       The index of section header which should be validated.
+  *                      The section headers are found in the pModElf->paShdrs array.
+- * @param   pszLogName  The log name.
+  * @param   cbRawImage  The size of the raw image.
++ * @param   pszLogName  The log name.
++ * @param   pErrInfo    Where to return extended error info. Optional.
+  */
+-static int RTLDRELF_NAME(ValidateSectionHeader)(PRTLDRMODELF pModElf, unsigned iShdr, const char *pszLogName, uint64_t cbRawImage)
++static int RTLDRELF_NAME(ValidateSectionHeader)(PRTLDRMODELF pModElf, unsigned iShdr, uint64_t cbRawImage,
++                                                const char *pszLogName, PRTERRINFO pErrInfo)
+ {
+     const Elf_Shdr *pShdr = &pModElf->paShdrs[iShdr];
+     char szSectionName[80]; NOREF(szSectionName);
+@@ -1776,37 +2015,29 @@ static int RTLDRELF_NAME(ValidateSection
+             || pShdr->sh_link       != SHN_UNDEF
+             || pShdr->sh_addralign  != 0
+             || pShdr->sh_entsize    != 0 )
+-        {
+-            Log(("RTLdrELF: %s: Bad #0 section: %.*Rhxs\n", pszLogName, sizeof(*pShdr), pShdr ));
+-            return VERR_BAD_EXE_FORMAT;
+-        }
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: Bad #0 section: %.*Rhxs", pszLogName, sizeof(*pShdr), pShdr);
+         return VINF_SUCCESS;
+     }
+ 
+     if (pShdr->sh_name >= pModElf->cbShStr)
+-    {
+-        Log(("RTLdrELF: %s: Shdr #%d: sh_name (%d) is beyond the end of the section header string table (%d)!\n",
+-             pszLogName, iShdr, pShdr->sh_name, pModElf->cbShStr)); NOREF(pszLogName);
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: Shdr #%d: sh_name (%d) is beyond the end of the section header string table (%d)!",
++                                   pszLogName, iShdr, pShdr->sh_name, pModElf->cbShStr);
+ 
+     if (pShdr->sh_link >= pModElf->Ehdr.e_shnum)
+-    {
+-        Log(("RTLdrELF: %s: Shdr #%d: sh_link (%d) is beyond the end of the section table (%d)!\n",
+-             pszLogName, iShdr, pShdr->sh_link, pModElf->Ehdr.e_shnum)); NOREF(pszLogName);
+-        return VERR_BAD_EXE_FORMAT;
+-    }
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: Shdr #%d: sh_link (%d) is beyond the end of the section table (%d)!",
++                                   pszLogName, iShdr, pShdr->sh_link, pModElf->Ehdr.e_shnum);
+ 
+     switch (pShdr->sh_type)
+     {
+         /** @todo find specs and check up which sh_info fields indicates section table entries */
+         case 12301230:
+             if (pShdr->sh_info >= pModElf->Ehdr.e_shnum)
+-            {
+-                Log(("RTLdrELF: %s: Shdr #%d: sh_info (%d) is beyond the end of the section table (%d)!\n",
+-                     pszLogName, iShdr, pShdr->sh_link, pModElf->Ehdr.e_shnum));
+-                return VERR_BAD_EXE_FORMAT;
+-            }
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: Shdr #%d: sh_info (%d) is beyond the end of the section table (%d)!",
++                                           pszLogName, iShdr, pShdr->sh_link, pModElf->Ehdr.e_shnum);
+             break;
+ 
+         case SHT_NULL:
+@@ -1840,18 +2071,740 @@ static int RTLDRELF_NAME(ValidateSection
+         uint64_t offEnd = pShdr->sh_offset + pShdr->sh_size;
+         if (    offEnd > cbRawImage
+             ||  offEnd < (uint64_t)pShdr->sh_offset)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: Shdr #%d: sh_offset (" FMT_ELF_OFF ") + sh_size (" FMT_ELF_XWORD " = %RX64) is beyond the end of the file (%RX64)!",
++                                       pszLogName, iShdr, pShdr->sh_offset, pShdr->sh_size, offEnd, cbRawImage);
++        if (pShdr->sh_offset < sizeof(Elf_Ehdr))
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: Shdr #%d: sh_offset (" FMT_ELF_OFF ") + sh_size (" FMT_ELF_XWORD ") is starting in the ELF header!",
++                                       pszLogName, iShdr, pShdr->sh_offset, pShdr->sh_size);
++    }
++
++    return VINF_SUCCESS;
++}
++
++
++/**
++ * Process the section headers.
++ *
++ * @returns iprt status code.
++ * @param   pModElf     Pointer to the module structure.
++ * @param   paShdrs     The section headers.
++ * @param   cbRawImage  The size of the raw image.
++ * @param   pszLogName  The log name.
++ * @param   pErrInfo    Where to return extended error info. Optional.
++ */
++static int RTLDRELF_NAME(ValidateAndProcessSectionHeaders)(PRTLDRMODELF pModElf, Elf_Shdr *paShdrs, uint64_t cbRawImage,
++                                                           const char *pszLogName, PRTERRINFO pErrInfo)
++{
++    Elf_Addr uNextAddr = 0;
++    for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++)
++    {
++        int rc = RTLDRELF_NAME(ValidateSectionHeader)(pModElf, i, cbRawImage, pszLogName, pErrInfo);
++        if (RT_FAILURE(rc))
++            return rc;
++
++        /*
++         * We're looking for symbol tables.
++         */
++        if (paShdrs[i].sh_type == SHT_SYMTAB)
+         {
+-            Log(("RTLdrELF: %s: Shdr #%d: sh_offset (" FMT_ELF_OFF ") + sh_size (" FMT_ELF_XWORD " = %RX64) is beyond the end of the file (%RX64)!\n",
+-                 pszLogName, iShdr, pShdr->sh_offset, pShdr->sh_size, offEnd, cbRawImage));
+-            return VERR_BAD_EXE_FORMAT;
++            if (pModElf->Rel.iSymSh != ~0U)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_LDRELF_MULTIPLE_SYMTABS,
++                                           "%s: Multiple symbol tabs! iSymSh=%d i=%d", pszLogName, pModElf->Rel.iSymSh, i);
++            pModElf->Rel.iSymSh = i;
++            pModElf->Rel.cSyms  = (unsigned)(paShdrs[i].sh_size / sizeof(Elf_Sym));
++            AssertBreakStmt(pModElf->Rel.cSyms == paShdrs[i].sh_size / sizeof(Elf_Sym), rc = VERR_IMAGE_TOO_BIG);
++            pModElf->Rel.iStrSh = paShdrs[i].sh_link;
++            pModElf->Rel.cbStr  = (unsigned)paShdrs[pModElf->Rel.iStrSh].sh_size;
++            AssertBreakStmt(pModElf->Rel.cbStr == paShdrs[pModElf->Rel.iStrSh].sh_size, rc = VERR_IMAGE_TOO_BIG);
++        }
++        else if (paShdrs[i].sh_type == SHT_DYNSYM)
++        {
++            if (pModElf->Dyn.iSymSh != ~0U)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_LDRELF_MULTIPLE_SYMTABS,
++                                           "%s: Multiple dynamic symbol tabs! iSymSh=%d i=%d", pszLogName, pModElf->Dyn.iSymSh, i);
++            if (pModElf->Ehdr.e_type != ET_DYN && pModElf->Ehdr.e_type != ET_EXEC)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: Unexpected SHT_DYNSYM (i=%d) for e_type=%d", pszLogName, i, pModElf->Ehdr.e_type);
++            pModElf->Dyn.iSymSh = i;
++            pModElf->Dyn.cSyms  = (unsigned)(paShdrs[i].sh_size / sizeof(Elf_Sym));
++            AssertBreakStmt(pModElf->Dyn.cSyms == paShdrs[i].sh_size / sizeof(Elf_Sym), rc = VERR_IMAGE_TOO_BIG);
++            pModElf->Dyn.iStrSh = paShdrs[i].sh_link;
++            pModElf->Dyn.cbStr  = (unsigned)paShdrs[pModElf->Dyn.iStrSh].sh_size;
++            AssertBreakStmt(pModElf->Dyn.cbStr == paShdrs[pModElf->Dyn.iStrSh].sh_size, rc = VERR_IMAGE_TOO_BIG);
+         }
+-        if (pShdr->sh_offset < sizeof(Elf_Ehdr))
++        /*
++         * We're also look for the dynamic section.
++         */
++        else if (paShdrs[i].sh_type == SHT_DYNAMIC)
++        {
++            if (pModElf->iShDynamic != ~0U)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: Multiple dynamic sections! iShDynamic=%d i=%d",
++                                           pszLogName, pModElf->iShDynamic, i);
++            if (pModElf->Ehdr.e_type != ET_DYN && pModElf->Ehdr.e_type != ET_EXEC)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: Unexpected SHT_DYNAMIC (i=%d) for e_type=%d", pszLogName, i, pModElf->Ehdr.e_type);
++            if (paShdrs[i].sh_entsize != sizeof(Elf_Dyn))
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: SHT_DYNAMIC (i=%d) sh_entsize=" FMT_ELF_XWORD ",  expected %#zx",
++                                           pszLogName, i, paShdrs[i].sh_entsize, sizeof(Elf_Dyn));
++            pModElf->iShDynamic = i;
++            Elf_Xword const cDynamic = paShdrs[i].sh_size / sizeof(Elf_Dyn);
++            if (cDynamic > _64K || cDynamic < 2)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: SHT_DYNAMIC (i=%d) sh_size=" FMT_ELF_XWORD " is out of range (2..64K)",
++                                           pszLogName, i, paShdrs[i].sh_size);
++            pModElf->cDynamic = (unsigned)cDynamic;
++        }
++
++        /*
++         * Special checks for the section string table.
++         */
++        if (i == pModElf->Ehdr.e_shstrndx)
+         {
+-            Log(("RTLdrELF: %s: Shdr #%d: sh_offset (" FMT_ELF_OFF ") + sh_size (" FMT_ELF_XWORD ") is starting in the ELF header!\n",
+-                 pszLogName, iShdr, pShdr->sh_offset, pShdr->sh_size));
+-            return VERR_BAD_EXE_FORMAT;
++            if (paShdrs[i].sh_type != SHT_STRTAB)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: Section header string table is not a SHT_STRTAB: %#x",
++                                           pszLogName, paShdrs[i].sh_type);
++            if (paShdrs[i].sh_size == 0)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Section header string table is empty", pszLogName);
+         }
++
++        /*
++         * Kluge for the .data..percpu segment in 64-bit linux kernels.
++         */
++        if (paShdrs[i].sh_flags & SHF_ALLOC)
++        {
++            if (   paShdrs[i].sh_addr == 0
++                && paShdrs[i].sh_addr < uNextAddr)
++            {
++                Elf_Addr uAddr = RT_ALIGN_T(uNextAddr, paShdrs[i].sh_addralign, Elf_Addr);
++                Log(("RTLdrElf: Out of order section #%d; adjusting sh_addr from " FMT_ELF_ADDR " to " FMT_ELF_ADDR "\n",
++                     i, paShdrs[i].sh_addr, uAddr));
++                paShdrs[i].sh_addr = uAddr;
++            }
++            uNextAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size;
++        }
++    } /* for each section header */
++
++    return VINF_SUCCESS;
++}
++
++
++/**
++ * Process the section headers.
++ *
++ * @returns iprt status code.
++ * @param   pModElf     Pointer to the module structure.
++ * @param   paShdrs     The section headers.
++ * @param   cbRawImage  The size of the raw image.
++ * @param   pszLogName  The log name.
++ * @param   pErrInfo    Where to return extended error info. Optional.
++ */
++static int RTLDRELF_NAME(ValidateAndProcessDynamicInfo)(PRTLDRMODELF pModElf, uint64_t cbRawImage, uint32_t fFlags,
++                                                        const char *pszLogName, PRTERRINFO pErrInfo)
++{
++    /*
++     * Check preconditions.
++     */
++    AssertReturn(pModElf->Ehdr.e_type == ET_DYN || pModElf->Ehdr.e_type == ET_EXEC, VERR_INTERNAL_ERROR_2);
++    if (pModElf->Ehdr.e_phnum <= 1 || pModElf->Ehdr.e_phnum >= _32K)
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                   "%s: e_phnum=%u is out of bounds (2..32K)", pszLogName, pModElf->Ehdr.e_phnum);
++    if (pModElf->iShDynamic == ~0U)
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: no .dynamic section", pszLogName);
++    AssertReturn(pModElf->cDynamic > 1 && pModElf->cDynamic <= _64K, VERR_INTERNAL_ERROR_3);
++
++    /* ASSUME that the sections are ordered by address.  That simplifies
++       validation code further down. */
++    AssertReturn(pModElf->Ehdr.e_shnum >= 2, VERR_INTERNAL_ERROR_4);
++    Elf_Shdr const *paShdrs  = pModElf->paShdrs;
++    Elf_Addr        uPrevEnd = paShdrs[1].sh_addr + paShdrs[1].sh_size;
++    for (unsigned i = 2; i < pModElf->Ehdr.e_shnum; i++)
++        if (paShdrs[i].sh_flags & SHF_ALLOC)
++        {
++            if (uPrevEnd > paShdrs[i].sh_addr)
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                           "%s: section %u is out of order: uPrevEnd=" FMT_ELF_ADDR " sh_addr=" FMT_ELF_ADDR,
++                                           pszLogName, i, uPrevEnd, paShdrs[i].sh_addr);
++            uPrevEnd = paShdrs[i].sh_addr + paShdrs[i].sh_size;
++        }
++
++    /* Must have string and symbol tables. */
++    if (pModElf->Dyn.iStrSh == ~0U)
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: No dynamic string table section", pszLogName);
++    if (pModElf->Dyn.iSymSh == ~0U)
++        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: No dynamic symbol table section", pszLogName);
++
++    /*
++     * Load the program headers.
++     */
++    size_t const cbPhdrs = sizeof(pModElf->paPhdrs[0]) * pModElf->Ehdr.e_phnum;
++    Elf_Phdr    *paPhdrs = (Elf_Phdr *)RTMemAllocZ(cbPhdrs);
++    pModElf->paPhdrs = paPhdrs;
++    AssertReturn(paPhdrs, VERR_NO_MEMORY);
++
++    int rc = pModElf->Core.pReader->pfnRead(pModElf->Core.pReader, paPhdrs, cbPhdrs, pModElf->Ehdr.e_phoff);
++    if (RT_FAILURE(rc))
++        return RTERRINFO_LOG_SET_F(pErrInfo, rc, "%s: pfnRead(,,%#zx, " FMT_ELF_OFF ") -> %Rrc",
++                                   pszLogName, cbPhdrs, pModElf->Ehdr.e_phoff, rc);
++
++    /*
++     * Validate them.
++     */
++    unsigned cbPage = _4K; /** @todo generalize architecture specific stuff using its own code template header.  */
++    switch (pModElf->Core.enmArch)
++    {
++        case RTLDRARCH_AMD64:
++        case RTLDRARCH_X86_32:
++            break;
++        default:
++            AssertFailedBreak(/** @todo page size for got.plt hacks */);
+     }
++    unsigned iLoad          = 0;
++    unsigned iLoadShdr      = 1; /* ASSUMES ordered (checked above). */
++    unsigned cDynamic       = 0;
++    Elf_Addr cbImage        = 0;
++    Elf_Addr uLinkAddress   = ~(Elf_Addr)0;
++    for (unsigned i = 0; i < pModElf->Ehdr.e_phnum; i++)
++    {
++        const Elf_Phdr * const pPhdr = &paPhdrs[i];
++        Log3(("RTLdrELF: Program Header #%d:\n"
++              "RTLdrELF:   p_type: " FMT_ELF_WORD " (%s)\n"
++              "RTLdrELF:  p_flags: " FMT_ELF_WORD "\n"
++              "RTLdrELF: p_offset: " FMT_ELF_OFF "\n"
++              "RTLdrELF:  p_vaddr: " FMT_ELF_ADDR "\n"
++              "RTLdrELF:  p_paddr: " FMT_ELF_ADDR "\n"
++              "RTLdrELF: p_filesz: " FMT_ELF_XWORD "\n"
++              "RTLdrELF:  p_memsz: " FMT_ELF_XWORD "\n"
++              "RTLdrELF:  p_align: " FMT_ELF_XWORD "\n",
++              i,
++              pPhdr->p_type, rtldrElfGetPhdrType(pPhdr->p_type), pPhdr->p_flags, pPhdr->p_offset,
++              pPhdr->p_vaddr, pPhdr->p_paddr, pPhdr->p_filesz, pPhdr->p_memsz, pPhdr->p_align));
++
++        if (pPhdr->p_type == DT_NULL)
++            continue;
++
++        if (   pPhdr->p_filesz != 0
++            && (   pPhdr->p_offset >= cbRawImage
++                || pPhdr->p_filesz > cbRawImage
++                || pPhdr->p_offset + pPhdr->p_filesz > cbRawImage))
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: Prog Hdr #%u: bogus p_offset=" FMT_ELF_OFF " & p_filesz=" FMT_ELF_XWORD " (file size %#RX64)",
++                                       pszLogName, i, pPhdr->p_offset, pPhdr->p_filesz, cbRawImage);
++
++        if (pPhdr->p_flags & ~(Elf64_Word)(PF_X | PF_R | PF_W))
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Prog Hdr #%u: bogus p_flags=" FMT_ELF_WORD,
++                                       pszLogName, i, pPhdr->p_flags);
++
++        if (!RT_IS_POWER_OF_TWO(pPhdr->p_align))
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Prog Hdr #%u: bogus p_align=" FMT_ELF_XWORD,
++                                       pszLogName, i, pPhdr->p_align);
++
++        if (   pPhdr->p_align  > 1
++            && pPhdr->p_memsz  > 0
++            && pPhdr->p_filesz > 0
++            && (pPhdr->p_offset & (pPhdr->p_align - 1)) != (pPhdr->p_vaddr & (pPhdr->p_align - 1)))
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: Prog Hdr #%u: misaligned p_offset=" FMT_ELF_OFF " p_vaddr=" FMT_ELF_ADDR " p_align=" FMT_ELF_XWORD,
++                                       pszLogName, i, pPhdr->p_offset, pPhdr->p_vaddr, pPhdr->p_align);
++
++        /* Do some type specfic checks: */
++        switch (pPhdr->p_type)
++        {
++            case PT_LOAD:
++            {
++                if (pPhdr->p_memsz < pPhdr->p_filesz)
++                    return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                               "%s: Prog Hdr #%u/LOAD#%u: bogus p_memsz=" FMT_ELF_XWORD " or p_filesz=" FMT_ELF_XWORD,
++                                               pszLogName, i, iLoad, pPhdr->p_memsz, pPhdr->p_filesz);
++                cbImage = pPhdr->p_vaddr + pPhdr->p_memsz;
++                if (iLoad == 0)
++                    uLinkAddress = pPhdr->p_vaddr;
++
++                /* Find the corresponding sections, checking their addresses and
++                   file offsets since the rest of the code is still section based
++                   rather than using program headers as it should... */
++                Elf_Off         off     = pPhdr->p_offset;
++                Elf_Addr        uAddr   = pPhdr->p_vaddr;
++                Elf_Xword       cbMem   = pPhdr->p_memsz;
++                Elf_Xword       cbFile  = pPhdr->p_filesz;
++                while (cbMem > 0)
++                {
++                    if (iLoadShdr < pModElf->Ehdr.e_shnum)
++                    { /* likely */ }
++                    else if (iLoadShdr == pModElf->Ehdr.e_shnum)
++                    {
++                        /** @todo anything else to check here? */
++                        iLoadShdr++;
++                        break;
++                    }
++                    else
++                        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                                   "%s: Prog Hdr #%u/LOAD#%u: Out of sections at " FMT_ELF_ADDR " LB " FMT_ELF_XWORD,
++                                                   pszLogName, i, iLoad, uAddr, cbMem);
++                    if (!(paShdrs[iLoadShdr].sh_flags & SHF_ALLOC))
++                    {
++                        if (   paShdrs[iLoadShdr].sh_type != SHT_NOBITS
++                            && paShdrs[iLoadShdr].sh_size > 0
++                            && off < paShdrs[iLoadShdr].sh_offset + paShdrs[iLoadShdr].sh_size
++                            && paShdrs[iLoadShdr].sh_offset < off + cbMem)
++                            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                                       "%s: Prog Hdr #%u/LOAD#%u: Overlaps with !SHF_ALLOC section at " FMT_ELF_OFF " LB " FMT_ELF_XWORD,
++                                                       pszLogName, i, iLoad, paShdrs[iLoadShdr].sh_offset, paShdrs[iLoadShdr].sh_size);
++                        pModElf->paShdrExtras[iLoadShdr].idxPhdr = UINT16_MAX;
++                        iLoadShdr++;
++                        continue;
++                    }
++
++                    if (uAddr != paShdrs[iLoadShdr].sh_addr)
++                    {
++                        /* Before the first section we expect headers to be loaded, so
++                           that the file is simply mapped from file offset zero. */
++                        if (   iLoadShdr == 1
++                            && iLoad     == 0
++                            && paShdrs[1].sh_addr == paShdrs[1].sh_offset
++                            && cbFile    >= paShdrs[1].sh_offset
++                            && cbMem     >= paShdrs[1].sh_offset)
++                        {
++                            /* Modify paShdrs[0] to describe the gap. ".elf.headers" */
++                            pModElf->iFirstSect              = 0;
++                            pModElf->paShdrs[0].sh_name      = 0;
++                            pModElf->paShdrs[0].sh_type      = SHT_PROGBITS;
++                            pModElf->paShdrs[0].sh_flags     = SHF_ALLOC
++                                                             | (pPhdr->p_flags & PF_W ? SHF_WRITE     : 0)
++                                                             | (pPhdr->p_flags & PF_X ? SHF_EXECINSTR : 0);
++                            pModElf->paShdrs[0].sh_addr      = uAddr;
++                            pModElf->paShdrs[0].sh_offset    = off;
++                            pModElf->paShdrs[0].sh_size      = paShdrs[1].sh_offset;
++                            pModElf->paShdrs[0].sh_link      = 0;
++                            pModElf->paShdrs[0].sh_info      = 0;
++                            pModElf->paShdrs[0].sh_addralign = pPhdr->p_align;
++                            pModElf->paShdrs[0].sh_entsize   = 0;
++                            *(Elf_Shdr *)pModElf->paOrgShdrs = pModElf->paShdrs[0]; /* (necessary for segment enumeration) */
++
++                            uAddr  += paShdrs[1].sh_offset;
++                            cbMem  -= paShdrs[1].sh_offset;
++                            cbFile -= paShdrs[1].sh_offset;
++                            off     = paShdrs[1].sh_offset;
++                        }
++                        /* Alignment padding?  Allow up to a page size. */
++                        else if (   paShdrs[iLoadShdr].sh_addr > uAddr
++                                 &&   paShdrs[iLoadShdr].sh_addr - uAddr
++                                    < RT_MAX(paShdrs[iLoadShdr].sh_addralign, cbPage /*got.plt hack*/))
++                        {
++                            Elf_Xword cbAlignPadding = paShdrs[iLoadShdr].sh_addr - uAddr;
++                            if (cbAlignPadding >= cbMem)
++                                break;
++                            cbMem -= cbAlignPadding;
++                            uAddr += cbAlignPadding;
++                            if (cbFile > cbAlignPadding)
++                            {
++                                off    += cbAlignPadding;
++                                cbFile -= cbAlignPadding;
++                            }
++                            else
++                            {
++                                off   += cbFile;
++                                cbFile = 0;
++                            }
++                        }
++                    }
++
++                    if (   uAddr == paShdrs[iLoadShdr].sh_addr
++                        && cbMem >= paShdrs[iLoadShdr].sh_size
++                        && (  paShdrs[iLoadShdr].sh_type != SHT_NOBITS
++                            ?    off    == paShdrs[iLoadShdr].sh_offset
++                              && cbFile >= paShdrs[iLoadShdr].sh_size /* this might be too strict... */
++                            : cbFile == 0) )
++                    {
++                        if (paShdrs[iLoadShdr].sh_type != SHT_NOBITS)
++                        {
++                            off    += paShdrs[iLoadShdr].sh_size;
++                            cbFile -= paShdrs[iLoadShdr].sh_size;
++                        }
++                        uAddr += paShdrs[iLoadShdr].sh_size;
++                        cbMem -= paShdrs[iLoadShdr].sh_size;
++                    }
++                    else
++                        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                                   "%s: Prog Hdr #%u/LOAD#%u: Mismatch at " FMT_ELF_ADDR " LB " FMT_ELF_XWORD " (file " FMT_ELF_OFF " LB " FMT_ELF_XWORD ") with section #%u " FMT_ELF_ADDR " LB " FMT_ELF_XWORD " (file " FMT_ELF_OFF " sh_type=" FMT_ELF_WORD ")",
++                                                   pszLogName, i, iLoad, uAddr, cbMem, off, cbFile,
++                                                   iLoadShdr, paShdrs[iLoadShdr].sh_addr, paShdrs[iLoadShdr].sh_size,
++                                                   paShdrs[iLoadShdr].sh_offset, paShdrs[iLoadShdr].sh_type);
++
++                    pModElf->paShdrExtras[iLoadShdr].idxPhdr = iLoad;
++                    iLoadShdr++;
++                } /* section loop */
++
++                iLoad++;
++                break;
++            }
++
++            case PT_DYNAMIC:
++            {
++                const Elf_Shdr *pShdr = &pModElf->paShdrs[pModElf->iShDynamic];
++                if (pPhdr->p_offset != pShdr->sh_offset)
++                    return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                               "%s: Prog Hdr #%u/DYNAMIC: p_offset=" FMT_ELF_OFF " expected " FMT_ELF_OFF,
++                                               pszLogName, i, pPhdr->p_offset, pShdr->sh_offset);
++                if (RT_MAX(pPhdr->p_memsz, pPhdr->p_filesz) != pShdr->sh_size)
++                    return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                               "%s: Prog Hdr #%u/DYNAMIC: expected " FMT_ELF_XWORD " for RT_MAX(p_memsz=" FMT_ELF_XWORD ", p_filesz=" FMT_ELF_XWORD ")",
++                                               pszLogName, i, pShdr->sh_size, pPhdr->p_memsz, pPhdr->p_filesz);
++                cDynamic++;
++                break;
++            }
++        }
++    }
++
++    if (iLoad == 0)
++        return RTERRINFO_LOG_SET_F(pErrInfo, rc, "%s: No PT_LOAD program headers", pszLogName);
++    if (cDynamic != 1)
++        return RTERRINFO_LOG_SET_F(pErrInfo, rc, "%s: No program header for the DYNAMIC section", pszLogName);
++
++    cbImage -= uLinkAddress;
++    pModElf->cbImage     = (uint64_t)cbImage;
++    pModElf->LinkAddress = uLinkAddress;
++    AssertReturn(pModElf->cbImage == cbImage, VERR_INTERNAL_ERROR_5);
++    Log3(("RTLdrELF: LinkAddress=" FMT_ELF_ADDR " cbImage=" FMT_ELF_ADDR " (from PT_LOAD)\n", uLinkAddress, cbImage));
++
++    for (; iLoadShdr < pModElf->Ehdr.e_shnum; iLoadShdr++)
++        if (   !(paShdrs[iLoadShdr].sh_flags & SHF_ALLOC)
++            || paShdrs[iLoadShdr].sh_size == 0)
++            pModElf->paShdrExtras[iLoadShdr].idxPhdr = UINT16_MAX;
++        else
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: No PT_LOAD for section #%u " FMT_ELF_ADDR " LB " FMT_ELF_XWORD " (file " FMT_ELF_OFF " sh_type=" FMT_ELF_WORD ")",
++                                       pszLogName, iLoadShdr, paShdrs[iLoadShdr].sh_addr, paShdrs[iLoadShdr].sh_size,
++                                       paShdrs[iLoadShdr].sh_offset, paShdrs[iLoadShdr].sh_type);
++
++    /*
++     * Load and validate the dynamic table.  We have got / will get most of the
++     * info we need from the section table, so we must make sure this matches up.
++     */
++    Log3(("RTLdrELF: Dynamic section - %u entries\n", pModElf->cDynamic));
++    size_t const    cbDynamic = pModElf->cDynamic * sizeof(pModElf->paDynamic[0]);
++    Elf_Dyn * const paDynamic = (Elf_Dyn *)RTMemAlloc(cbDynamic);
++    AssertReturn(paDynamic, VERR_NO_MEMORY);
++    pModElf->paDynamic = paDynamic;
++
++    rc = pModElf->Core.pReader->pfnRead(pModElf->Core.pReader, paDynamic, cbDynamic, paShdrs[pModElf->iShDynamic].sh_offset);
++    if (RT_FAILURE(rc))
++        return RTERRINFO_LOG_SET_F(pErrInfo, rc, "%s: pfnRead(,,%#zx, " FMT_ELF_OFF ") -> %Rrc",
++                                   pszLogName, cbDynamic, paShdrs[pModElf->iShDynamic].sh_offset, rc);
++
++    for (uint32_t i = 0; i < pModElf->cDynamic; i++)
++    {
++#define LOG_VALIDATE_PTR_RET(szName) do { \
++            Log3(("RTLdrELF: DT[%u]: %16s " FMT_ELF_ADDR "\n", i, szName, paDynamic[i].d_un.d_ptr)); \
++            if ((uint64_t)paDynamic[i].d_un.d_ptr - uLinkAddress < cbImage) { /* likely */ } \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" szName ": Invalid address " FMT_ELF_ADDR " (valid range: " FMT_ELF_ADDR " LB " FMT_ELF_ADDR ")", \
++                                            pszLogName, i, paDynamic[i].d_un.d_ptr, uLinkAddress, cbImage); \
++        } while (0)
++#define LOG_VALIDATE_PTR_VAL_RET(szName, uExpected) do { \
++            Log3(("RTLdrELF: DT[%u]: %16s " FMT_ELF_ADDR "\n", i, szName, (uint64_t)paDynamic[i].d_un.d_ptr)); \
++            if (paDynamic[i].d_un.d_ptr == (Elf_Addr)(uExpected)) { /* likely */ } \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" szName ": " FMT_ELF_ADDR ", expected " FMT_ELF_ADDR, \
++                                            pszLogName, i, paDynamic[i].d_un.d_ptr, (Elf_Addr)(uExpected)); \
++        } while (0)
++#define LOG_VALIDATE_STR_RET(szName) do { \
++            Log3(("RTLdrELF: DT[%u]: %16s %#RX64\n", i, szName, (uint64_t)paDynamic[i].d_un.d_val)); \
++            if ((uint64_t)paDynamic[i].d_un.d_val < pModElf->Dyn.cbStr) { /* likely */ } \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" szName ": Invalid string table offset %#RX64 (max %#x)", \
++                                            pszLogName, i, (uint64_t)paDynamic[i].d_un.d_val, pModElf->Dyn.cbStr); \
++        } while (0)
++#define LOG_VALIDATE_VAL_RET(szName, uExpected) do { \
++            Log3(("RTLdrELF: DT[%u]: %16s %#RX64\n", i, szName, (uint64_t)paDynamic[i].d_un.d_val)); \
++            if ((uint64_t)paDynamic[i].d_un.d_val == (uint64_t)(uExpected)) { /* likely */ } \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" szName ": %#RX64, expected %#RX64", \
++                                            pszLogName, i, (uint64_t)paDynamic[i].d_un.d_val, (uint64_t)(uExpected)); \
++        } while (0)
++#define SET_RELOC_TYPE_RET(a_szName, a_uType) do { \
++            if (pModElf->DynInfo.uRelocType == 0 || pModElf->DynInfo.uRelocType == (a_uType)) \
++                pModElf->DynInfo.uRelocType = (a_uType); \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" a_szName ": Mixing DT_RELA and DT_REL", pszLogName, i); \
++        } while (0)
++#define SET_INFO_FIELD_RET(a_szName, a_Field, a_Value, a_UnsetValue, a_szFmt) do { \
++            if ((a_Field) == (a_UnsetValue) && (a_Value) != (a_UnsetValue)) \
++                (a_Field) = (a_Value); /* likely */ \
++            else if ((a_Field) != (a_UnsetValue)) \
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" a_szName ": Multiple entries (first value " a_szFmt ", second " a_szFmt ")", pszLogName, i, (a_Field), (a_Value)); \
++            else if ((a_Value) != (a_UnsetValue)) \
++                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" a_szName ": Unexpected value " a_szFmt, pszLogName, i, (a_Value)); \
++        } while (0)
++#define FIND_MATCHING_SECTION_RET(a_szName, a_ExtraMatchExpr, a_idxShFieldToSet) do { \
++            unsigned iSh; \
++            for (iSh = 1; iSh < pModElf->Ehdr.e_shnum; iSh++) \
++                if (   paShdrs[iSh].sh_addr == paDynamic[i].d_un.d_ptr \
++                    && (a_ExtraMatchExpr)) \
++                { \
++                    (a_idxShFieldToSet) = iSh; \
++                    if (pModElf->paShdrExtras[iSh].idxDt != UINT16_MAX) \
++                        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, \
++                                                   "%s: DT[%u]/" a_szName ": section #%u (" FMT_ELF_ADDR ") already referenced by DT[%u]", \
++                                                   pszLogName, i, iSh, paShdrs[iSh].sh_addr, pModElf->paShdrExtras[iSh].idxDt); \
++                    pModElf->paShdrExtras[iSh].idxDt  = i; \
++                    pModElf->paShdrExtras[iSh].uDtTag = (uint32_t)paDynamic[i].d_tag; \
++                    break; \
++                } \
++            if (iSh < pModElf->Ehdr.e_shnum) { /* likely */ } \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" a_szName ": No matching section for " FMT_ELF_ADDR, pszLogName, i, paDynamic[i].d_un.d_ptr); \
++        } while (0)
++#define ONLY_FOR_DEBUG_OR_VALIDATION_RET(a_szName) do { \
++            if (fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION)) { /* likely */ } \
++            else return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/" a_szName ": Not supported (" FMT_ELF_ADDR ")", pszLogName, i, paDynamic[i].d_un.d_ptr); \
++        } while (0)
++#define LOG_NON_VALUE_ENTRY(a_szName) Log3(("RTLdrELF: DT[%u]: %16s (%#RX64)\n", i, a_szName, (uint64_t)paDynamic[i].d_un.d_val))
++
++        switch (paDynamic[i].d_tag)
++        {
++            case DT_NULL:
++                LOG_NON_VALUE_ENTRY("DT_NULL");
++                for (unsigned iNull = i + 1; iNull < pModElf->cDynamic; iNull++)
++                    if (paDynamic[i].d_tag == DT_NULL) /* Not technically a bug, but let's try being extremely strict for now */
++                        LOG_NON_VALUE_ENTRY("DT_NULL");
++                    else if (!(fFlags & (RTLDR_O_FOR_DEBUG | RTLDR_O_FOR_VALIDATION)))
++                        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                                   "%s: DT[%u]/DT_NULL: Dynamic section isn't zero padded (extra #%u of #%u)",
++                                                   pszLogName, i, iNull - i, pModElf->cDynamic - i);
++                i = pModElf->cDynamic;
++                break;
++            case DT_NEEDED:
++                LOG_VALIDATE_STR_RET("DT_NEEDED");
++                break;
++            case DT_PLTRELSZ:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64 bytes\n", i, "DT_PLTRELSZ", (uint64_t)paDynamic[i].d_un.d_val));
++                SET_INFO_FIELD_RET("DT_PLTRELSZ", pModElf->DynInfo.cbJmpRelocs, (Elf_Xword)paDynamic[i].d_un.d_val, 0, FMT_ELF_XWORD);
++                break;
++            case DT_PLTGOT:
++                LOG_VALIDATE_PTR_RET("DT_PLTGOT");
++                break;
++            case DT_HASH:
++                LOG_VALIDATE_PTR_RET("DT_HASH");
++                break;
++            case DT_STRTAB:
++                LOG_VALIDATE_PTR_VAL_RET("DT_STRTAB", paShdrs[pModElf->Dyn.iStrSh].sh_addr);
++                pModElf->paShdrExtras[pModElf->Dyn.iStrSh].idxDt  = i;
++                pModElf->paShdrExtras[pModElf->Dyn.iSymSh].uDtTag = DT_STRTAB;
++                break;
++            case DT_SYMTAB:
++                LOG_VALIDATE_PTR_VAL_RET("DT_SYMTAB", paShdrs[pModElf->Dyn.iSymSh].sh_addr);
++                pModElf->paShdrExtras[pModElf->Dyn.iSymSh].idxDt  = i;
++                pModElf->paShdrExtras[pModElf->Dyn.iSymSh].uDtTag = DT_SYMTAB;
++                break;
++            case DT_RELA:
++                LOG_VALIDATE_PTR_RET("DT_RELA");
++                SET_RELOC_TYPE_RET("DT_RELA", DT_RELA);
++                SET_INFO_FIELD_RET("DT_RELA", pModElf->DynInfo.uPtrRelocs, paDynamic[i].d_un.d_ptr, ~(Elf_Addr)0, FMT_ELF_ADDR);
++                FIND_MATCHING_SECTION_RET("DT_RELA", paShdrs[iSh].sh_type == SHT_RELA, pModElf->DynInfo.idxShRelocs);
++                break;
++            case DT_RELASZ:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64 bytes\n", i, "DT_RELASZ", (uint64_t)paDynamic[i].d_un.d_val));
++                SET_RELOC_TYPE_RET("DT_RELASZ", DT_RELA);
++                SET_INFO_FIELD_RET("DT_RELASZ", pModElf->DynInfo.cbRelocs, (Elf_Xword)paDynamic[i].d_un.d_val, 0, FMT_ELF_XWORD);
++                break;
++            case DT_RELAENT:
++                LOG_VALIDATE_VAL_RET("DT_RELAENT", sizeof(Elf_Rela));
++                SET_RELOC_TYPE_RET("DT_RELAENT", DT_RELA);
++                SET_INFO_FIELD_RET("DT_RELAENT", pModElf->DynInfo.cbRelocEntry, (unsigned)sizeof(Elf_Rela), 0, "%u");
++                break;
++            case DT_STRSZ:
++                LOG_VALIDATE_VAL_RET("DT_STRSZ", pModElf->Dyn.cbStr);
++                break;
++            case DT_SYMENT:
++                LOG_VALIDATE_VAL_RET("DT_SYMENT", sizeof(Elf_Sym));
++                break;
++            case DT_INIT:
++                LOG_VALIDATE_PTR_RET("DT_INIT");
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_INIT");
++                break;
++            case DT_FINI:
++                LOG_VALIDATE_PTR_RET("DT_FINI");
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_FINI");
++                break;
++            case DT_SONAME:
++                LOG_VALIDATE_STR_RET("DT_SONAME");
++                break;
++            case DT_RPATH:
++                LOG_VALIDATE_STR_RET("DT_RPATH");
++                break;
++            case DT_SYMBOLIC:
++                LOG_NON_VALUE_ENTRY("DT_SYMBOLIC");
++                break;
++            case DT_REL:
++                LOG_VALIDATE_PTR_RET("DT_REL");
++                SET_RELOC_TYPE_RET("DT_REL", DT_REL);
++                SET_INFO_FIELD_RET("DT_REL", pModElf->DynInfo.uPtrRelocs, paDynamic[i].d_un.d_ptr, ~(Elf_Addr)0, FMT_ELF_ADDR);
++                FIND_MATCHING_SECTION_RET("DT_REL", paShdrs[iSh].sh_type == SHT_REL, pModElf->DynInfo.idxShRelocs);
++                break;
++            case DT_RELSZ:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64 bytes\n", i, "DT_RELSZ", (uint64_t)paDynamic[i].d_un.d_val));
++                SET_RELOC_TYPE_RET("DT_RELSZ", DT_REL);
++                SET_INFO_FIELD_RET("DT_RELSZ", pModElf->DynInfo.cbRelocs, (Elf_Xword)paDynamic[i].d_un.d_val, 0, FMT_ELF_XWORD);
++                break;
++            case DT_RELENT:
++                LOG_VALIDATE_VAL_RET("DT_RELENT", sizeof(Elf_Rel));
++                SET_RELOC_TYPE_RET("DT_RELENT", DT_REL);
++                SET_INFO_FIELD_RET("DT_RELENT", pModElf->DynInfo.cbRelocEntry, (unsigned)sizeof(Elf_Rel), 0, "%u");
++                break;
++            case DT_PLTREL:
++                if (paDynamic[i].d_un.d_val != DT_RELA && paDynamic[i].d_un.d_val != DT_REL)
++                    return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT[%u]/DT_PLTREL: Invalid value %#RX64",
++                                               pszLogName, i, (uint64_t)paDynamic[i].d_un.d_val);
++                Log3(("RTLdrELF: DT[%u]: %16s DT_REL%s\n", i, "DT_PLTREL", paDynamic[i].d_un.d_val == DT_RELA ? "A" : ""));
++                SET_INFO_FIELD_RET("DT_PLTREL", pModElf->DynInfo.uJmpRelocType, (unsigned)paDynamic[i].d_un.d_val, 0, "%u");
++                break;
++            case DT_DEBUG:
++                LOG_VALIDATE_PTR_RET("DT_DEBUG");
++                break;
++            case DT_TEXTREL:
++                LOG_NON_VALUE_ENTRY("DT_TEXTREL");
++                break;
++            case DT_JMPREL:
++                LOG_VALIDATE_PTR_RET("DT_JMPREL");
++                SET_INFO_FIELD_RET("DT_JMPREL", pModElf->DynInfo.uPtrJmpRelocs, paDynamic[i].d_un.d_ptr, ~(Elf_Addr)0, FMT_ELF_ADDR);
++                FIND_MATCHING_SECTION_RET("DT_JMPREL", 1, pModElf->DynInfo.idxShJmpRelocs);
++                break;
++            case DT_BIND_NOW:
++                LOG_NON_VALUE_ENTRY("DT_BIND_NOW");
++                break;
++            case DT_INIT_ARRAY:
++                LOG_VALIDATE_PTR_RET("DT_INIT_ARRAY");
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_INIT_ARRAY");
++                break;
++            case DT_FINI_ARRAY:
++                LOG_VALIDATE_PTR_RET("DT_FINI_ARRAY");
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_FINI_ARRAY");
++                break;
++            case DT_INIT_ARRAYSZ:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64 bytes\n", i, "DT_INIT_ARRAYSZ", (uint64_t)paDynamic[i].d_un.d_val));
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_INIT_ARRAYSZ");
++                break;
++            case DT_FINI_ARRAYSZ:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64 bytes\n", i, "DT_FINI_ARRAYSZ", (uint64_t)paDynamic[i].d_un.d_val));
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_FINI_ARRAYSZ");
++                break;
++            case DT_RUNPATH:
++                LOG_VALIDATE_STR_RET("DT_RUNPATH");
++                break;
++            case DT_FLAGS:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64\n", i, "DT_FLAGS", (uint64_t)paDynamic[i].d_un.d_val));
++                break;
++            case DT_PREINIT_ARRAY:
++                LOG_VALIDATE_PTR_RET("DT_PREINIT_ARRAY");
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_PREINIT_ARRAY");
++                break;
++            case DT_PREINIT_ARRAYSZ:
++                Log3(("RTLdrELF: DT[%u]: %16s %#RX64 bytes\n", i, "DT_PREINIT_ARRAYSZ", (uint64_t)paDynamic[i].d_un.d_val));
++                ONLY_FOR_DEBUG_OR_VALIDATION_RET("DT_PREINIT_ARRAYSZ");
++                break;
++            default:
++                if (   paDynamic[i].d_un.d_val < DT_ENCODING
++                    || (paDynamic[i].d_un.d_val & 1))
++                    Log3(("RTLdrELF: DT[%u]: %#010RX64       %#RX64%s\n", i, (uint64_t)paDynamic[i].d_tag,
++                          (uint64_t)paDynamic[i].d_un.d_val, paDynamic[i].d_un.d_val >= DT_ENCODING ? " (val)" : ""));
++                else
++                {
++                    Log3(("RTLdrELF: DT[%u]: %#010RX64       " FMT_ELF_ADDR " (addr)\n",
++                          i, (uint64_t)paDynamic[i].d_tag, paDynamic[i].d_un.d_ptr));
++                    if ((uint64_t)paDynamic[i].d_un.d_ptr - uLinkAddress >= cbImage)
++                        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                                   "%s: DT[%u]/%#RX64: Invalid address " FMT_ELF_ADDR " (valid range: " FMT_ELF_ADDR " LB " FMT_ELF_ADDR ")",
++                                                   pszLogName, i, (uint64_t)paDynamic[i].d_tag,
++                                                   paDynamic[i].d_un.d_ptr, uLinkAddress, cbImage);
++                }
++                break;
++        }
++#undef LOG_VALIDATE_VAL_RET
++#undef LOG_VALIDATE_STR_RET
++#undef LOG_VALIDATE_PTR_VAL_RET
++#undef LOG_VALIDATE_PTR_RET
++#undef SET_RELOC_TYPE_RET
++#undef SET_INFO_FIELD_RET
++#undef FIND_MATCHING_SECTION_RET
++#undef ONLY_FOR_DEBUG_OR_VALIDATION_RET
++    }
++
++    /*
++     * Validate the relocation information we've gathered.
++     */
++    Elf_Word uShTypeArch = SHT_RELA; /** @todo generalize architecture specific stuff using its own code template header.  */
++    switch (pModElf->Core.enmArch)
++    {
++        case RTLDRARCH_AMD64:
++            break;
++        case RTLDRARCH_X86_32:
++            uShTypeArch = SHT_REL;
++            break;
++        default:
++            AssertFailedBreak(/** @todo page size for got.plt hacks */);
++
++    }
++
++    if (pModElf->DynInfo.uRelocType != 0)
++    {
++        const char * const pszModifier = pModElf->DynInfo.uRelocType == DT_RELA ? "A" : "";
++        if (pModElf->DynInfo.uPtrRelocs == ~(Elf_Addr)0)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Missing DT_REL%s", pszLogName, pszModifier);
++        if (pModElf->DynInfo.cbRelocs == 0)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Missing DT_REL%sSZ", pszLogName, pszModifier);
++        if (pModElf->DynInfo.cbRelocEntry == 0)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Missing DT_REL%sENT", pszLogName, pszModifier);
++        Elf_Shdr const *pShdrRelocs = &paShdrs[pModElf->DynInfo.idxShRelocs];
++        Elf_Word const  uShType     = pModElf->DynInfo.uJmpRelocType == DT_RELA ? SHT_RELA : SHT_REL;
++        if (pShdrRelocs->sh_type != uShType)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT_REL%s* does not match section type: %u vs %u",
++                                       pszLogName, pszModifier, pShdrRelocs->sh_type, uShType);
++        if (pShdrRelocs->sh_size != pModElf->DynInfo.cbRelocs)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT_REL%sSZ does not match section size: %u vs %u",
++                                       pszLogName, pszModifier, pShdrRelocs->sh_size, pModElf->DynInfo.cbRelocs);
++        if (uShType != uShTypeArch)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT_REL%s* does not match architecture: %u, arch wants %u",
++                                       pszLogName, pszModifier, uShType, uShTypeArch);
++    }
++
++    if (   pModElf->DynInfo.uPtrJmpRelocs != ~(Elf_Addr)0
++        || pModElf->DynInfo.cbJmpRelocs   != 0
++        || pModElf->DynInfo.uJmpRelocType != 0)
++    {
++        if (pModElf->DynInfo.uPtrJmpRelocs == ~(Elf_Addr)0)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Missing DT_JMPREL", pszLogName);
++        if (pModElf->DynInfo.cbJmpRelocs == 0)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Missing DT_PLTRELSZ", pszLogName);
++        if (pModElf->DynInfo.uJmpRelocType == 0)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: Missing DT_PLTREL", pszLogName);
++        Elf_Shdr const *pShdrRelocs = &paShdrs[pModElf->DynInfo.idxShJmpRelocs];
++        Elf_Word const  uShType     = pModElf->DynInfo.uJmpRelocType == DT_RELA ? SHT_RELA : SHT_REL;
++        if (pShdrRelocs->sh_type != uShType)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT_PLTREL does not match section type: %u vs %u",
++                                       pszLogName, pShdrRelocs->sh_type, uShType);
++        if (pShdrRelocs->sh_size != pModElf->DynInfo.cbJmpRelocs)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT_PLTRELSZ does not match section size: %u vs %u",
++                                       pszLogName, pShdrRelocs->sh_size, pModElf->DynInfo.cbJmpRelocs);
++        if (uShType != uShTypeArch)
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT, "%s: DT_PLTREL does not match architecture: %u, arch wants %u",
++                                       pszLogName, uShType, uShTypeArch);
++    }
++
++    /*
++     * Check that there aren't any other relocations hiding in the section table.
++     */
++    for (uint32_t i = 1; i < pModElf->Ehdr.e_shnum; i++)
++        if (   (paShdrs[i].sh_type == SHT_REL || paShdrs[i].sh_type == SHT_RELA)
++            && pModElf->paShdrExtras[i].uDtTag != DT_REL
++            && pModElf->paShdrExtras[i].uDtTag != DT_RELA
++            && pModElf->paShdrExtras[i].uDtTag != DT_JMPREL)
++        {
++            char szSecHdrNm[80];
++            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
++                                       "%s: section header #%u (%s type=" FMT_ELF_WORD " size=" FMT_ELF_XWORD ") contains relocations not referenced by the dynamic section",
++                                       pszLogName, i,
++                                       RTLDRELF_NAME(GetSHdrName)(pModElf, paShdrs[i].sh_name, szSecHdrNm, sizeof(szSecHdrNm)),
++                                       paShdrs[i].sh_type, paShdrs[i].sh_size);
++        }
+ 
+     return VINF_SUCCESS;
+ }
+@@ -1866,8 +2819,9 @@ static int RTLDRELF_NAME(ValidateSection
+  * @param   fFlags      Reserved, MBZ.
+  * @param   enmArch     Architecture specifier.
+  * @param   phLdrMod    Where to store the handle.
++ * @param   pErrInfo    Where to return extended error info. Optional.
+  */
+-static int RTLDRELF_NAME(Open)(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod)
++static int RTLDRELF_NAME(Open)(PRTLDRREADER pReader, uint32_t fFlags, RTLDRARCH enmArch, PRTLDRMOD phLdrMod, PRTERRINFO pErrInfo)
+ {
+     const char *pszLogName = pReader->pfnLogName(pReader);
+     uint64_t    cbRawImage = pReader->pfnSize(pReader);
+@@ -1891,21 +2845,42 @@ static int RTLDRELF_NAME(Open)(PRTLDRREA
+ #else
+     pModElf->Core.enmArch   = RTLDRARCH_AMD64;
+ #endif
+-    //pModElf->pvBits         = NULL;
+-    //pModElf->Ehdr           = {0};
+-    //pModElf->paShdrs        = NULL;
+-    //pModElf->paSyms         = NULL;
+-    pModElf->iSymSh         = ~0U;
+-    //pModElf->cSyms          = 0;
+-    pModElf->iStrSh         = ~0U;
+-    //pModElf->cbStr          = 0;
+-    //pModElf->cbImage        = 0;
+-    //pModElf->LinkAddress    = 0;
+-    //pModElf->pStr           = NULL;
+-    //pModElf->cbShStr        = 0;
+-    //pModElf->pShStr         = NULL;
+-    //pModElf->iShEhFrame      = 0;
+-    //pModElf->iShEhFrameHdr   = 0;
++    //pModElf->pvBits       = NULL;
++    //pModElf->Ehdr         = {0};
++    //pModElf->paShdrs      = NULL;
++    //pModElf->Rel.paSyms   = NULL;
++    pModElf->Rel.iSymSh     = ~0U;
++    //pModElf->Rel.cSyms    = 0;
++    pModElf->Rel.iStrSh     = ~0U;
++    //pModElf->Rel.cbStr    = 0;
++    //pModElf->Rel.pStr     = NULL;
++    //pModElf->Dyn.paSyms   = NULL;
++    pModElf->Dyn.iSymSh     = ~0U;
++    //pModElf->Dyn.cSyms    = 0;
++    pModElf->Dyn.iStrSh     = ~0U;
++    //pModElf->Dyn.cbStr    = 0;
++    //pModElf->Dyn.pStr     = NULL;
++    pModElf->iFirstSect     = 1;
++    //pModElf->fShdrInOrder = false;
++    //pModElf->cbImage      = 0;
++    pModElf->LinkAddress    = ~(Elf_Addr)0;
++    //pModElf->cbShStr      = 0;
++    //pModElf->pShStr       = NULL;
++    //pModElf->iShEhFrame   = 0;
++    //pModElf->iShEhFrameHdr= 0;
++    pModElf->iShDynamic     = ~0U;
++    //pModElf->cDynamic     = 0;
++    //pModElf->paDynamic    = NULL;
++    //pModElf->paPhdrs      = NULL;
++    pModElf->DynInfo.uPtrRelocs         = ~(Elf_Addr)0;
++    //pModElf->DynInfo.cbRelocs         = 0;
++    //pModElf->DynInfo.cbRelocEntry     = 0;
++    //pModElf->DynInfo.uRelocType       = 0;
++    //pModElf->DynInfo.idxShRelocs      = 0;
++    pModElf->DynInfo.uPtrJmpRelocs      = ~(Elf_Addr)0;
++    //pModElf->DynInfo.cbJmpRelocs      = 0;
++    //pModElf->DynInfo.uJmpRelocType    = 0;
++    //pModElf->DynInfo.idxShJmpRelocs   = 0;
+ 
+     /*
+      * Read and validate the ELF header and match up the CPU architecture.
+@@ -1914,7 +2889,7 @@ static int RTLDRELF_NAME(Open)(PRTLDRREA
+     if (RT_SUCCESS(rc))
+     {
+         RTLDRARCH enmArchImage = RTLDRARCH_INVALID; /* shut up gcc */
+-        rc = RTLDRELF_NAME(ValidateElfHeader)(&pModElf->Ehdr, pszLogName, cbRawImage, &enmArchImage);
++        rc = RTLDRELF_NAME(ValidateElfHeader)(&pModElf->Ehdr, cbRawImage, pszLogName, &enmArchImage, pErrInfo);
+         if (RT_SUCCESS(rc))
+         {
+             if (    enmArch != RTLDRARCH_WHATEVER
+@@ -1929,7 +2904,7 @@ static int RTLDRELF_NAME(Open)(PRTLDRREA
+          * introspection methods.
+          */
+         size_t const cbShdrs = pModElf->Ehdr.e_shnum * sizeof(Elf_Shdr);
+-        Elf_Shdr *paShdrs = (Elf_Shdr *)RTMemAlloc(cbShdrs * 2);
++        Elf_Shdr *paShdrs = (Elf_Shdr *)RTMemAlloc(cbShdrs * 2 + sizeof(RTLDRMODELFSHX) * pModElf->Ehdr.e_shnum);
+         if (paShdrs)
+         {
+             pModElf->paShdrs = paShdrs;
+@@ -1939,111 +2914,77 @@ static int RTLDRELF_NAME(Open)(PRTLDRREA
+                 memcpy(&paShdrs[pModElf->Ehdr.e_shnum], paShdrs, cbShdrs);
+                 pModElf->paOrgShdrs = &paShdrs[pModElf->Ehdr.e_shnum];
+ 
++                pModElf->paShdrExtras = (PRTLDRMODELFSHX)&pModElf->paOrgShdrs[pModElf->Ehdr.e_shnum];
++                memset(pModElf->paShdrExtras, 0xff, sizeof(RTLDRMODELFSHX) * pModElf->Ehdr.e_shnum);
++
+                 pModElf->cbShStr = paShdrs[pModElf->Ehdr.e_shstrndx].sh_size;
+ 
+                 /*
+                  * Validate the section headers and find relevant sections.
+                  */
+-                Elf_Addr uNextAddr = 0;
+-                for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++)
+-                {
+-                    rc = RTLDRELF_NAME(ValidateSectionHeader)(pModElf, i, pszLogName, cbRawImage);
+-                    if (RT_FAILURE(rc))
+-                        break;
+-
+-                    /* We're looking for symbol tables. */
+-                    if (paShdrs[i].sh_type == SHT_SYMTAB)
+-                    {
+-                        if (pModElf->iSymSh != ~0U)
+-                        {
+-                            Log(("RTLdrElf: %s: Multiple symbol tabs! iSymSh=%d i=%d\n", pszLogName, pModElf->iSymSh, i));
+-                            rc = VERR_LDRELF_MULTIPLE_SYMTABS;
+-                            break;
+-                        }
+-                        pModElf->iSymSh = i;
+-                        pModElf->cSyms  = (unsigned)(paShdrs[i].sh_size / sizeof(Elf_Sym));
+-                        AssertBreakStmt(pModElf->cSyms == paShdrs[i].sh_size / sizeof(Elf_Sym), rc = VERR_IMAGE_TOO_BIG);
+-                        pModElf->iStrSh = paShdrs[i].sh_link;
+-                        pModElf->cbStr  = (unsigned)paShdrs[pModElf->iStrSh].sh_size;
+-                        AssertBreakStmt(pModElf->cbStr == paShdrs[pModElf->iStrSh].sh_size, rc = VERR_IMAGE_TOO_BIG);
+-                    }
+-
+-                    /* Special checks for the section string table. */
+-                    if (i == pModElf->Ehdr.e_shstrndx)
+-                    {
+-                        if (paShdrs[i].sh_type != SHT_STRTAB)
+-                        {
+-                            Log(("RTLdrElf: Section header string table is not a SHT_STRTAB: %#x\n", paShdrs[i].sh_type));
+-                            rc = VERR_BAD_EXE_FORMAT;
+-                            break;
+-                        }
+-                        if (paShdrs[i].sh_size == 0)
+-                        {
+-                            Log(("RTLdrElf: Section header string table is empty\n"));
+-                            rc = VERR_BAD_EXE_FORMAT;
+-                            break;
+-                        }
+-                    }
++                rc = RTLDRELF_NAME(ValidateAndProcessSectionHeaders)(pModElf, paShdrs, cbRawImage, pszLogName, pErrInfo);
+ 
+-                    /* Kluge for the .data..percpu segment in 64-bit linux kernels. */
+-                    if (paShdrs[i].sh_flags & SHF_ALLOC)
+-                    {
+-                        if (   paShdrs[i].sh_addr == 0
+-                            && paShdrs[i].sh_addr < uNextAddr)
+-                        {
+-                            Elf_Addr uAddr = RT_ALIGN_T(uNextAddr, paShdrs[i].sh_addralign, Elf_Addr);
+-                            Log(("RTLdrElf: Out of order section #%d; adjusting sh_addr from " FMT_ELF_ADDR " to " FMT_ELF_ADDR "\n",
+-                                 i, paShdrs[i].sh_addr, uAddr));
+-                            paShdrs[i].sh_addr = uAddr;
+-                        }
+-                        uNextAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size;
+-                    }
+-                } /* for each section header */
++                /*
++                 * Read validate and process program headers if ET_DYN or ET_EXEC.
++                 */
++                if (RT_SUCCESS(rc) && (pModElf->Ehdr.e_type == ET_DYN || pModElf->Ehdr.e_type == ET_EXEC))
++                    rc = RTLDRELF_NAME(ValidateAndProcessDynamicInfo)(pModElf, cbRawImage, fFlags, pszLogName, pErrInfo);
+ 
+                 /*
+-                 * Calculate the image base address if the image isn't relocatable.
++                 * Massage the section headers.
+                  */
+-                if (RT_SUCCESS(rc) && pModElf->Ehdr.e_type != ET_REL)
++                if (RT_SUCCESS(rc))
+                 {
+-                    pModElf->LinkAddress = ~(Elf_Addr)0;
+-                    for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++)
+-                        if (   (paShdrs[i].sh_flags & SHF_ALLOC)
+-                            && paShdrs[i].sh_addr < pModElf->LinkAddress)
+-                            pModElf->LinkAddress = paShdrs[i].sh_addr;
+-                    if (pModElf->LinkAddress == ~(Elf_Addr)0)
++                    if (pModElf->Ehdr.e_type == ET_REL)
+                     {
+-                        AssertFailed();
+-                        rc = VERR_LDR_GENERAL_FAILURE;
+-                    }
+-                    if (pModElf->Ehdr.e_type == ET_DYN && pModElf->LinkAddress < 0x1000)
++                        /* Do allocations and figure the image size: */
+                         pModElf->LinkAddress = 0;
++                        for (unsigned i = 1; i < pModElf->Ehdr.e_shnum; i++)
++                            if (paShdrs[i].sh_flags & SHF_ALLOC)
++                            {
++                                paShdrs[i].sh_addr = paShdrs[i].sh_addralign
++                                                   ? RT_ALIGN_T(pModElf->cbImage, paShdrs[i].sh_addralign, Elf_Addr)
++                                                   : (Elf_Addr)pModElf->cbImage;
++                                Elf_Addr EndAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size;
++                                if (pModElf->cbImage < EndAddr)
++                                {
++                                    pModElf->cbImage = (size_t)EndAddr;
++                                    AssertMsgBreakStmt(pModElf->cbImage == EndAddr, (FMT_ELF_ADDR "\n", EndAddr), rc = VERR_IMAGE_TOO_BIG);
++                                }
++                                Log2(("RTLdrElf: %s: Assigned " FMT_ELF_ADDR " to section #%d\n", pszLogName, paShdrs[i].sh_addr, i));
++                            }
++                    }
++                    else
++                    {
++                        /* Convert sh_addr to RVA: */
++                        Assert(pModElf->LinkAddress != ~(Elf_Addr)0);
++                        for (unsigned i = 0 /*!*/; i < pModElf->Ehdr.e_shnum; i++)
++                            if (paShdrs[i].sh_flags & SHF_ALLOC)
++                                    paShdrs[i].sh_addr -= pModElf->LinkAddress;
++                    }
+                 }
+ 
+                 /*
+-                 * Perform allocations / RVA calculations, determine the image size.
++                 * Check if the sections are in order by address, as that will simplify
++                 * enumeration and address translation.
+                  */
+-                if (RT_SUCCESS(rc))
+-                    for (unsigned i = 0; i < pModElf->Ehdr.e_shnum; i++)
+-                        if (paShdrs[i].sh_flags & SHF_ALLOC)
++                pModElf->fShdrInOrder = true;
++                Elf_Addr uEndAddr = 0;
++                for (unsigned i = pModElf->iFirstSect; i < pModElf->Ehdr.e_shnum; i++)
++                    if (paShdrs[i].sh_flags & SHF_ALLOC)
++                    {
++                        if (uEndAddr <= paShdrs[i].sh_addr)
++                            uEndAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size;
++                        else
+                         {
+-                            if (pModElf->Ehdr.e_type == ET_REL)
+-                                paShdrs[i].sh_addr = paShdrs[i].sh_addralign
+-                                                   ? RT_ALIGN_T(pModElf->cbImage, paShdrs[i].sh_addralign, Elf_Addr)
+-                                                   : (Elf_Addr)pModElf->cbImage;
+-                            else
+-                                paShdrs[i].sh_addr -= pModElf->LinkAddress;
+-                            Elf_Addr EndAddr = paShdrs[i].sh_addr + paShdrs[i].sh_size;
+-                            if (pModElf->cbImage < EndAddr)
+-                            {
+-                                pModElf->cbImage = (size_t)EndAddr;
+-                                AssertMsgBreakStmt(pModElf->cbImage == EndAddr, (FMT_ELF_ADDR "\n", EndAddr), rc = VERR_IMAGE_TOO_BIG);
+-                            }
+-                            Log2(("RTLdrElf: %s: Assigned " FMT_ELF_ADDR " to section #%d\n", pszLogName, paShdrs[i].sh_addr, i));
++                            pModElf->fShdrInOrder = false;
++                            break;
+                         }
++                    }
+ 
+-                Log2(("RTLdrElf: iSymSh=%u cSyms=%u iStrSh=%u cbStr=%u rc=%Rrc cbImage=%#zx LinkAddress=" FMT_ELF_ADDR "\n",
+-                      pModElf->iSymSh, pModElf->cSyms, pModElf->iStrSh, pModElf->cbStr, rc,
+-                      pModElf->cbImage, pModElf->LinkAddress));
++                Log2(("RTLdrElf: iSymSh=%u cSyms=%u iStrSh=%u cbStr=%u rc=%Rrc cbImage=%#zx LinkAddress=" FMT_ELF_ADDR " fShdrInOrder=%RTbool\n",
++                      pModElf->Rel.iSymSh, pModElf->Rel.cSyms, pModElf->Rel.iStrSh, pModElf->Rel.cbStr, rc,
++                      pModElf->cbImage, pModElf->LinkAddress, pModElf->fShdrInOrder));
+                 if (RT_SUCCESS(rc))
+                 {
+                     pModElf->Core.pOps      = &RTLDRELF_MID(s_rtldrElf,Ops);
+@@ -2077,6 +3018,7 @@ static int RTLDRELF_NAME(Open)(PRTLDRREA
+ #undef RTLDRELF_MID
+ 
+ #undef FMT_ELF_ADDR
++#undef FMT_ELF_ADDR7
+ #undef FMT_ELF_HALF
+ #undef FMT_ELF_SHALF
+ #undef FMT_ELF_OFF
+@@ -2102,6 +3044,8 @@ static int RTLDRELF_NAME(Open)(PRTLDRREA
+ #undef Elf_Size
+ #undef Elf_Sword
+ #undef Elf_Word
++#undef Elf_Xword
++#undef Elf_Sxword
+ 
+ #undef RTLDRMODELF
+ #undef PRTLDRMODELF
+--- a/include/iprt/memobj.h
++++ b/include/iprt/memobj.h
+@@ -127,7 +127,10 @@ RTR0DECL(int) RTR0MemObjFree(RTR0MEMOBJ
+  * @returns IPRT status code.
+  * @param   pMemObj         Where to store the ring-0 memory object handle.
+  * @param   cb              Number of bytes to allocate. This is rounded up to nearest page.
+- * @param   fExecutable     Flag indicating whether it should be permitted to executed code in the memory object.
++ * @param   fExecutable     Flag indicating whether it should be permitted to
++ *                          executed code in the memory object.  The user must
++ *                          use RTR0MemObjProtect after initialization the
++ *                          allocation to actually make it executable.
+  */
+ #define RTR0MemObjAllocPage(pMemObj, cb, fExecutable) \
+     RTR0MemObjAllocPageTag((pMemObj), (cb), (fExecutable), RTMEM_TAG)
+@@ -140,7 +143,10 @@ RTR0DECL(int) RTR0MemObjFree(RTR0MEMOBJ
+  * @returns IPRT status code.
+  * @param   pMemObj         Where to store the ring-0 memory object handle.
+  * @param   cb              Number of bytes to allocate. This is rounded up to nearest page.
+- * @param   fExecutable     Flag indicating whether it should be permitted to executed code in the memory object.
++ * @param   fExecutable     Flag indicating whether it should be permitted to
++ *                          executed code in the memory object.  The user must
++ *                          use RTR0MemObjProtect after initialization the
++ *                          allocation to actually make it executable.
+  * @param   pszTag          Allocation tag used for statistics and such.
+  */
+ RTR0DECL(int) RTR0MemObjAllocPageTag(PRTR0MEMOBJ pMemObj, size_t cb, bool fExecutable, const char *pszTag);
+@@ -154,7 +160,10 @@ RTR0DECL(int) RTR0MemObjAllocPageTag(PRT
+  * @returns IPRT status code.
+  * @param   pMemObj         Where to store the ring-0 memory object handle.
+  * @param   cb              Number of bytes to allocate. This is rounded up to nearest page.
+- * @param   fExecutable     Flag indicating whether it should be permitted to executed code in the memory object.
++ * @param   fExecutable     Flag indicating whether it should be permitted to
++ *                          executed code in the memory object.  The user must
++ *                          use RTR0MemObjProtect after initialization the
++ *                          allocation to actually make it executable.
+  */
+ #define RTR0MemObjAllocLow(pMemObj, cb, fExecutable) \
+     RTR0MemObjAllocLowTag((pMemObj), (cb), (fExecutable), RTMEM_TAG)
+@@ -168,7 +177,10 @@ RTR0DECL(int) RTR0MemObjAllocPageTag(PRT
+  * @returns IPRT status code.
+  * @param   pMemObj         Where to store the ring-0 memory object handle.
+  * @param   cb              Number of bytes to allocate. This is rounded up to nearest page.
+- * @param   fExecutable     Flag indicating whether it should be permitted to executed code in the memory object.
++ * @param   fExecutable     Flag indicating whether it should be permitted to
++ *                          executed code in the memory object.  The user must
++ *                          use RTR0MemObjProtect after initialization the
++ *                          allocation to actually make it executable.
+  * @param   pszTag          Allocation tag used for statistics and such.
+  */
+ RTR0DECL(int) RTR0MemObjAllocLowTag(PRTR0MEMOBJ pMemObj, size_t cb, bool fExecutable, const char *pszTag);
+@@ -182,7 +194,10 @@ RTR0DECL(int) RTR0MemObjAllocLowTag(PRTR
+  * @returns IPRT status code.
+  * @param   pMemObj         Where to store the ring-0 memory object handle.
+  * @param   cb              Number of bytes to allocate. This is rounded up to nearest page.
+- * @param   fExecutable     Flag indicating whether it should be permitted to executed code in the memory object.
++ * @param   fExecutable     Flag indicating whether it should be permitted to
++ *                          executed code in the memory object.  The user must
++ *                          use RTR0MemObjProtect after initialization the
++ *                          allocation to actually make it executable.
+  */
+ #define RTR0MemObjAllocCont(pMemObj, cb, fExecutable) \
+     RTR0MemObjAllocContTag((pMemObj), (cb), (fExecutable), RTMEM_TAG)
+@@ -196,7 +211,10 @@ RTR0DECL(int) RTR0MemObjAllocLowTag(PRTR
+  * @returns IPRT status code.
+  * @param   pMemObj         Where to store the ring-0 memory object handle.
+  * @param   cb              Number of bytes to allocate. This is rounded up to nearest page.
+- * @param   fExecutable     Flag indicating whether it should be permitted to executed code in the memory object.
++ * @param   fExecutable     Flag indicating whether it should be permitted to
++ *                          executed code in the memory object.  The user must
++ *                          use RTR0MemObjProtect after initialization the
++ *                          allocation to actually make it executable.
+  * @param   pszTag          Allocation tag used for statistics and such.
+  */
+ RTR0DECL(int) RTR0MemObjAllocContTag(PRTR0MEMOBJ pMemObj, size_t cb, bool fExecutable, const char *pszTag);
+--- a/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
++++ b/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.c
+@@ -38,7 +38,7 @@
+ 
+ 
+ #if (defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING)) && !defined(RTMEMALLOC_EXEC_HEAP)
+-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+ /**
+  * Starting with 2.6.23 we can use __get_vm_area and map_vm_area to allocate
+  * memory in the moduel range.  This is preferrable to the exec heap below.
+--- a/include/VBox/sup.h
++++ b/include/VBox/sup.h
+@@ -1553,8 +1553,11 @@ SUPR3DECL(int) SUPR3GetSymbolR0(void *pv
+  *
+  * @returns VBox status code.
+  * @deprecated  Use SUPR3LoadModule(pszFilename, "VMMR0.r0", &pvImageBase)
++ * @param   pszFilename     Full path to the VMMR0.r0 file (silly).
++ * @param   pErrInfo        Where to return extended error information.
++ *                          Optional.
+  */
+-SUPR3DECL(int) SUPR3LoadVMM(const char *pszFilename);
++SUPR3DECL(int) SUPR3LoadVMM(const char *pszFilename, PRTERRINFO pErrInfo);
+ 
+ /**
+  * Unloads R0 HC VMM code.
+--- a/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp
++++ b/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp
+@@ -846,7 +846,7 @@ extern "C" DECLEXPORT(int) TrustedMain(i
+         return 1;
+     }
+ 
+-    rc = SUPR3LoadVMM(szAbsPath);
++    rc = SUPR3LoadVMM(szAbsPath, NULL);
+     if (RT_FAILURE(rc))
+     {
+         RTPrintf("tstIntNet-1: SUPR3LoadVMM(\"%s\") -> %Rrc\n", szAbsPath, rc);
+--- a/src/VBox/NetworkServices/Dhcpd/VBoxNetDhcpd.cpp
++++ b/src/VBox/NetworkServices/Dhcpd/VBoxNetDhcpd.cpp
+@@ -259,7 +259,7 @@ int VBoxNetDhcpd::vmmInit()
+     if (RT_SUCCESS(rc))
+         rc = RTPathAppend(szPathVMMR0, sizeof(szPathVMMR0), "VMMR0.r0");
+     if (RT_SUCCESS(rc))
+-        rc = SUPR3LoadVMM(szPathVMMR0);
++        rc = SUPR3LoadVMM(szPathVMMR0, NULL /*pErrInfo*/);
+     return rc;
+ }
+ 
+--- a/src/VBox/NetworkServices/NetLib/VBoxNetBaseService.cpp
++++ b/src/VBox/NetworkServices/NetLib/VBoxNetBaseService.cpp
+@@ -383,7 +383,7 @@ int VBoxNetBaseService::tryGoOnline(void
+         return rc;
+     }
+ 
+-    rc = SUPR3LoadVMM(strcat(szPath, "/VMMR0.r0"));
++    rc = SUPR3LoadVMM(strcat(szPath, "/VMMR0.r0"), NULL);
+     if (RT_FAILURE(rc))
+     {
+         LogRel(("VBoxNetBaseService: SUPR3LoadVMM(\"%s\") -> %Rrc\n", szPath, rc));
+--- a/src/VBox/VMM/testcase/tstGlobalConfig.cpp
++++ b/src/VBox/VMM/testcase/tstGlobalConfig.cpp
+@@ -102,7 +102,7 @@ extern "C" DECLEXPORT(int) TrustedMain(i
+         return 1;
+     }
+ 
+-    rc = SUPR3LoadVMM("./VMMR0.r0");
++    rc = SUPR3LoadVMM("./VMMR0.r0", NULL /*pErrInfo*/);
+     if (RT_SUCCESS(rc))
+     {
+         Req.pSession = pSession;
+--- a/src/VBox/HostDrivers/Support/SUPLibLdr.cpp
++++ b/src/VBox/HostDrivers/Support/SUPLibLdr.cpp
+@@ -334,6 +334,372 @@ static DECLCALLBACK(int) supLoadModuleCr
+ }
+ 
+ 
++/** Argument package for supLoadModuleCompileSegmentsCB. */
++typedef struct SUPLDRCOMPSEGTABARGS
++{
++    uint32_t        uStartRva;
++    uint32_t        uEndRva;
++    uint32_t        fProt;
++    uint32_t        iSegs;
++    uint32_t        cSegsAlloc;
++    PSUPLDRSEG      paSegs;
++    PRTERRINFO      pErrInfo;
++} SUPLDRCOMPSEGTABARGS, *PSUPLDRCOMPSEGTABARGS;
++
++/**
++ * @callback_method_impl{FNRTLDRENUMSEGS,
++ *  Compile list of segments with the same memory protection.}
++ */
++static DECLCALLBACK(int) supLoadModuleCompileSegmentsCB(RTLDRMOD hLdrMod, PCRTLDRSEG pSeg, void *pvUser)
++{
++    PSUPLDRCOMPSEGTABARGS pArgs = (PSUPLDRCOMPSEGTABARGS)pvUser;
++    AssertCompile(RTMEM_PROT_READ  == SUPLDR_PROT_READ);
++    AssertCompile(RTMEM_PROT_WRITE == SUPLDR_PROT_WRITE);
++    AssertCompile(RTMEM_PROT_EXEC  == SUPLDR_PROT_EXEC);
++    RT_NOREF(hLdrMod);
++
++    Log2(("supLoadModuleCompileSegmentsCB: %RTptr/%RTptr LB %RTptr/%RTptr prot %#x %s\n",
++          pSeg->LinkAddress, pSeg->RVA, pSeg->cbMapped, pSeg->cb, pSeg->fProt, pSeg->pszName));
++
++    /* Ignore segments not part of the loaded image. */
++    if (pSeg->RVA == NIL_RTLDRADDR || pSeg->cbMapped == 0)
++    {
++        Log2(("supLoadModuleCompileSegmentsCB: -> skipped\n"));
++        return VINF_SUCCESS;
++    }
++
++    /* We currently ASSUME that all relevant segments are in ascending RVA order. */
++    AssertReturn(pSeg->RVA >= pArgs->uEndRva,
++                 RTERRINFO_LOG_REL_SET_F(pArgs->pErrInfo, VERR_BAD_EXE_FORMAT, "Out of order segment: %p LB %#zx #%.*s",
++                                         pSeg->RVA, pSeg->cb, pSeg->cchName, pSeg->pszName));
++
++    /* We ASSUME the cbMapped field is implemented. */
++    AssertReturn(pSeg->cbMapped != NIL_RTLDRADDR, VERR_INTERNAL_ERROR_2);
++    AssertReturn(pSeg->cbMapped < _1G, VERR_INTERNAL_ERROR_4);
++    uint32_t cbMapped = (uint32_t)pSeg->cbMapped;
++    AssertReturn(pSeg->RVA      < _1G, VERR_INTERNAL_ERROR_3);
++    uint32_t uRvaSeg  = (uint32_t)pSeg->RVA;
++
++    /*
++     * If the protection is the same as the previous segment,
++     * just update uEndRva and continue.
++     */
++    uint32_t fProt = pSeg->fProt;
++#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
++    if (fProt & RTMEM_PROT_EXEC)
++        fProt |= fProt & RTMEM_PROT_READ;
++#endif
++    if (pSeg->fProt == pArgs->fProt)
++    {
++        pArgs->uEndRva = uRvaSeg + cbMapped;
++        Log2(("supLoadModuleCompileSegmentsCB: -> merged, end %#x\n", pArgs->uEndRva));
++        return VINF_SUCCESS;
++    }
++
++    /*
++     * The protection differs, so commit current segment and start a new one.
++     * However, if the new segment and old segment share a page, this becomes
++     * a little more complicated...
++     */
++    if (pArgs->uStartRva < pArgs->uEndRva)
++    {
++        if (((pArgs->uEndRva - 1) >> PAGE_SHIFT) != (uRvaSeg >> PAGE_SHIFT))
++        {
++            /* No common page, so make the new segment start on a page boundrary. */
++            cbMapped += uRvaSeg & PAGE_OFFSET_MASK;
++            uRvaSeg &= ~(uint32_t)PAGE_OFFSET_MASK;
++            Assert(pArgs->uEndRva <= uRvaSeg);
++            Log2(("supLoadModuleCompileSegmentsCB: -> new, no common\n"));
++        }
++        else if ((fProt & pArgs->fProt) == fProt)
++        {
++            /* The current segment includes the memory protections of the
++               previous, so include the common page in it: */
++            uint32_t const cbCommon = PAGE_SIZE - (uRvaSeg & PAGE_OFFSET_MASK);
++            if (cbCommon >= cbMapped)
++            {
++                pArgs->uEndRva = uRvaSeg + cbMapped;
++                Log2(("supLoadModuleCompileSegmentsCB: -> merge, %#x common, upgrading prot to %#x, end %#x\n",
++                      cbCommon, pArgs->fProt, pArgs->uEndRva));
++                return VINF_SUCCESS; /* New segment was smaller than a page. */
++            }
++            cbMapped -= cbCommon;
++            uRvaSeg  += cbCommon;
++            Assert(pArgs->uEndRva <= uRvaSeg);
++            Log2(("supLoadModuleCompileSegmentsCB: -> new, %#x common into previous\n", cbCommon));
++        }
++        else if ((fProt & pArgs->fProt) == pArgs->fProt)
++        {
++            /* The new segment includes the memory protections of the
++               previous, so include the common page in it: */
++            cbMapped += uRvaSeg & PAGE_OFFSET_MASK;
++            uRvaSeg &= ~(uint32_t)PAGE_OFFSET_MASK;
++            if (uRvaSeg == pArgs->uStartRva)
++            {
++                pArgs->fProt   = fProt;
++                pArgs->uEndRva = uRvaSeg + cbMapped;
++                Log2(("supLoadModuleCompileSegmentsCB: -> upgrade current protection, end %#x\n", pArgs->uEndRva));
++                return VINF_SUCCESS; /* Current segment was smaller than a page. */
++            }
++            Log2(("supLoadModuleCompileSegmentsCB: -> new, %#x common into new\n", (uint32_t)(pSeg->RVA & PAGE_OFFSET_MASK)));
++        }
++        else
++        {
++            /* Create a new segment for the common page with the combined protection. */
++            Log2(("supLoadModuleCompileSegmentsCB: -> it's complicated...\n"));
++            pArgs->uEndRva &= ~(uint32_t)PAGE_OFFSET_MASK;
++            if (pArgs->uEndRva > pArgs->uStartRva)
++            {
++                Log2(("supLoadModuleCompileSegmentsCB: SUP Seg #%u: %#x LB %#x prot %#x\n",
++                      pArgs->iSegs, pArgs->uStartRva, pArgs->uEndRva - pArgs->uStartRva, pArgs->fProt));
++                if (pArgs->paSegs)
++                {
++                    AssertReturn(pArgs->iSegs < pArgs->cSegsAlloc, VERR_INTERNAL_ERROR_5);
++                    pArgs->paSegs[pArgs->iSegs].off     = pArgs->uStartRva;
++                    pArgs->paSegs[pArgs->iSegs].cb      = pArgs->uEndRva - pArgs->uStartRva;
++                    pArgs->paSegs[pArgs->iSegs].fProt   = pArgs->fProt;
++                    pArgs->paSegs[pArgs->iSegs].fUnused = 0;
++                }
++                pArgs->iSegs++;
++                pArgs->uStartRva = pArgs->uEndRva;
++            }
++            pArgs->fProt |= fProt;
++
++            uint32_t const cbCommon = PAGE_SIZE - (uRvaSeg & PAGE_OFFSET_MASK);
++            if (cbCommon >= cbMapped)
++            {
++                fProt |= pArgs->fProt;
++                pArgs->uEndRva = uRvaSeg + cbMapped;
++                return VINF_SUCCESS; /* New segment was smaller than a page. */
++            }
++            cbMapped -= cbCommon;
++            uRvaSeg  += cbCommon;
++            Assert(uRvaSeg - pArgs->uStartRva == PAGE_SIZE);
++        }
++
++        /* The current segment should end where the new one starts, no gaps. */
++        pArgs->uEndRva = uRvaSeg;
++
++        /* Emit the current segment */
++        Log2(("supLoadModuleCompileSegmentsCB: SUP Seg #%u: %#x LB %#x prot %#x\n",
++              pArgs->iSegs, pArgs->uStartRva, pArgs->uEndRva - pArgs->uStartRva, pArgs->fProt));
++        if (pArgs->paSegs)
++        {
++            AssertReturn(pArgs->iSegs < pArgs->cSegsAlloc, VERR_INTERNAL_ERROR_5);
++            pArgs->paSegs[pArgs->iSegs].off     = pArgs->uStartRva;
++            pArgs->paSegs[pArgs->iSegs].cb      = pArgs->uEndRva - pArgs->uStartRva;
++            pArgs->paSegs[pArgs->iSegs].fProt   = pArgs->fProt;
++            pArgs->paSegs[pArgs->iSegs].fUnused = 0;
++        }
++        pArgs->iSegs++;
++    }
++    /* else: current segment is empty */
++
++    /* Start the new segment. */
++    Assert(!(uRvaSeg & PAGE_OFFSET_MASK));
++    pArgs->fProt     = fProt;
++    pArgs->uStartRva = uRvaSeg;
++    pArgs->uEndRva   = uRvaSeg + cbMapped;
++    return VINF_SUCCESS;
++}
++
++
++/**
++ * Worker for supLoadModule().
++ */
++static int supLoadModuleInner(RTLDRMOD hLdrMod, PSUPLDRLOAD pLoadReq, uint32_t cbImageWithEverything,
++                              RTR0PTR uImageBase, size_t cbImage, const char *pszModule, const char *pszFilename,
++                              bool fNativeLoader, bool fIsVMMR0, const char *pszSrvReqHandler,
++                              uint32_t offSymTab, uint32_t cSymbols,
++                              uint32_t offStrTab, size_t cbStrTab,
++                              uint32_t offSegTab, uint32_t cSegments,
++                              PRTERRINFO pErrInfo)
++{
++    /*
++     * Get the image bits.
++     */
++    SUPLDRRESIMPARGS Args = { pszModule, pErrInfo };
++    int rc = RTLdrGetBits(hLdrMod, &pLoadReq->u.In.abImage[0], uImageBase, supLoadModuleResolveImport, &Args);
++    if (RT_FAILURE(rc))
++    {
++        LogRel(("SUP: RTLdrGetBits failed for %s (%s). rc=%Rrc\n", pszModule, pszFilename, rc));
++        if (!RTErrInfoIsSet(pErrInfo))
++            RTErrInfoSetF(pErrInfo, rc, "RTLdrGetBits failed");
++        return rc;
++    }
++
++    /*
++     * Get the entry points.
++     */
++    RTUINTPTR VMMR0EntryFast = 0;
++    RTUINTPTR VMMR0EntryEx = 0;
++    RTUINTPTR SrvReqHandler = 0;
++    RTUINTPTR ModuleInit = 0;
++    RTUINTPTR ModuleTerm = 0;
++    const char *pszEp = NULL;
++    if (fIsVMMR0)
++    {
++        rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], uImageBase,
++                              UINT32_MAX, pszEp = "VMMR0EntryFast", &VMMR0EntryFast);
++        if (RT_SUCCESS(rc))
++            rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], uImageBase,
++                                  UINT32_MAX, pszEp = "VMMR0EntryEx", &VMMR0EntryEx);
++    }
++    else if (pszSrvReqHandler)
++        rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], uImageBase,
++                              UINT32_MAX, pszEp = pszSrvReqHandler, &SrvReqHandler);
++    if (RT_SUCCESS(rc))
++    {
++        int rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], uImageBase,
++                                   UINT32_MAX, pszEp = "ModuleInit", &ModuleInit);
++        if (RT_FAILURE(rc2))
++            ModuleInit = 0;
++
++        rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], uImageBase,
++                               UINT32_MAX, pszEp = "ModuleTerm", &ModuleTerm);
++        if (RT_FAILURE(rc2))
++            ModuleTerm = 0;
++    }
++    if (RT_FAILURE(rc))
++    {
++        LogRel(("SUP: Failed to get entry point '%s' for %s (%s) rc=%Rrc\n", pszEp, pszModule, pszFilename, rc));
++        return RTErrInfoSetF(pErrInfo, rc, "Failed to resolve entry point '%s'", pszEp);
++    }
++
++    /*
++     * Create the symbol and string tables.
++     */
++    SUPLDRCREATETABSARGS CreateArgs;
++    CreateArgs.cbImage = cbImage;
++    CreateArgs.pSym    = (PSUPLDRSYM)&pLoadReq->u.In.abImage[offSymTab];
++    CreateArgs.pszBase =     (char *)&pLoadReq->u.In.abImage[offStrTab];
++    CreateArgs.psz     = CreateArgs.pszBase;
++    rc = RTLdrEnumSymbols(hLdrMod, 0, NULL, 0, supLoadModuleCreateTabsCB, &CreateArgs);
++    if (RT_FAILURE(rc))
++    {
++        LogRel(("SUP: RTLdrEnumSymbols failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc));
++        return RTErrInfoSetF(pErrInfo, rc, "RTLdrEnumSymbols #2 failed");
++    }
++    AssertRelease((size_t)(CreateArgs.psz  - CreateArgs.pszBase) <= cbStrTab);
++    AssertRelease((size_t)(CreateArgs.pSym - (PSUPLDRSYM)&pLoadReq->u.In.abImage[offSymTab]) <= cSymbols);
++
++    /*
++     * Create the segment table.
++     */
++    SUPLDRCOMPSEGTABARGS SegArgs;
++    SegArgs.uStartRva   = 0;
++    SegArgs.uEndRva     = 0;
++    SegArgs.fProt       = RTMEM_PROT_READ;
++    SegArgs.iSegs       = 0;
++    SegArgs.cSegsAlloc  = cSegments;
++    SegArgs.paSegs      = (PSUPLDRSEG)&pLoadReq->u.In.abImage[offSegTab];
++    SegArgs.pErrInfo    = pErrInfo;
++    rc = RTLdrEnumSegments(hLdrMod, supLoadModuleCompileSegmentsCB, &SegArgs);
++    if (RT_FAILURE(rc))
++    {
++        LogRel(("SUP: RTLdrEnumSegments failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc));
++        return RTErrInfoSetF(pErrInfo, rc, "RTLdrEnumSegments #2 failed");
++    }
++    SegArgs.uEndRva = (uint32_t)cbImage;
++    AssertReturn(SegArgs.uEndRva == cbImage, VERR_OUT_OF_RANGE);
++    if (SegArgs.uEndRva > SegArgs.uStartRva)
++    {
++        SegArgs.paSegs[SegArgs.iSegs].off     = SegArgs.uStartRva;
++        SegArgs.paSegs[SegArgs.iSegs].cb      = SegArgs.uEndRva - SegArgs.uStartRva;
++        SegArgs.paSegs[SegArgs.iSegs].fProt   = SegArgs.fProt;
++        SegArgs.paSegs[SegArgs.iSegs].fUnused = 0;
++        SegArgs.iSegs++;
++    }
++    for (uint32_t i = 0; i < SegArgs.iSegs; i++)
++        LogRel(("SUP: seg #%u: %c%c%c %#010RX32 LB %#010RX32\n", i, /** @todo LogRel2 */
++                SegArgs.paSegs[i].fProt & SUPLDR_PROT_READ  ? 'R' : ' ',
++                SegArgs.paSegs[i].fProt & SUPLDR_PROT_WRITE ? 'W' : ' ',
++                SegArgs.paSegs[i].fProt & SUPLDR_PROT_EXEC  ? 'X' : ' ',
++                SegArgs.paSegs[i].off, SegArgs.paSegs[i].cb));
++    AssertRelease(SegArgs.iSegs == cSegments);
++    AssertRelease(SegArgs.cSegsAlloc == cSegments);
++
++    /*
++     * Upload the image.
++     */
++    pLoadReq->Hdr.u32Cookie = g_u32Cookie;
++    pLoadReq->Hdr.u32SessionCookie = g_u32SessionCookie;
++    pLoadReq->Hdr.cbIn = SUP_IOCTL_LDR_LOAD_SIZE_IN(cbImageWithEverything);
++    pLoadReq->Hdr.cbOut = SUP_IOCTL_LDR_LOAD_SIZE_OUT;
++    pLoadReq->Hdr.fFlags = SUPREQHDR_FLAGS_MAGIC | SUPREQHDR_FLAGS_EXTRA_IN;
++    pLoadReq->Hdr.rc = VERR_INTERNAL_ERROR;
++
++    pLoadReq->u.In.pfnModuleInit              = (RTR0PTR)ModuleInit;
++    pLoadReq->u.In.pfnModuleTerm              = (RTR0PTR)ModuleTerm;
++    if (fIsVMMR0)
++    {
++        pLoadReq->u.In.eEPType                = SUPLDRLOADEP_VMMR0;
++        pLoadReq->u.In.EP.VMMR0.pvVMMR0       = uImageBase;
++        pLoadReq->u.In.EP.VMMR0.pvVMMR0EntryFast= (RTR0PTR)VMMR0EntryFast;
++        pLoadReq->u.In.EP.VMMR0.pvVMMR0EntryEx  = (RTR0PTR)VMMR0EntryEx;
++    }
++    else if (pszSrvReqHandler)
++    {
++        pLoadReq->u.In.eEPType                = SUPLDRLOADEP_SERVICE;
++        pLoadReq->u.In.EP.Service.pfnServiceReq = (RTR0PTR)SrvReqHandler;
++        pLoadReq->u.In.EP.Service.apvReserved[0] = NIL_RTR0PTR;
++        pLoadReq->u.In.EP.Service.apvReserved[1] = NIL_RTR0PTR;
++        pLoadReq->u.In.EP.Service.apvReserved[2] = NIL_RTR0PTR;
++    }
++    else
++        pLoadReq->u.In.eEPType                = SUPLDRLOADEP_NOTHING;
++    pLoadReq->u.In.offStrTab                  = offStrTab;
++    pLoadReq->u.In.cbStrTab                   = (uint32_t)cbStrTab;
++    AssertRelease(pLoadReq->u.In.cbStrTab == cbStrTab);
++    pLoadReq->u.In.cbImageBits                = (uint32_t)cbImage;
++    pLoadReq->u.In.offSymbols                 = offSymTab;
++    pLoadReq->u.In.cSymbols                   = cSymbols;
++    pLoadReq->u.In.offSegments                = offSegTab;
++    pLoadReq->u.In.cSegments                  = cSegments;
++    pLoadReq->u.In.cbImageWithEverything      = cbImageWithEverything;
++    pLoadReq->u.In.pvImageBase                = uImageBase;
++    if (!g_uSupFakeMode)
++    {
++        rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_LDR_LOAD, pLoadReq, SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithEverything));
++        if (RT_SUCCESS(rc))
++            rc = pLoadReq->Hdr.rc;
++        else
++            LogRel(("SUP: SUP_IOCTL_LDR_LOAD ioctl for %s (%s) failed rc=%Rrc\n", pszModule, pszFilename, rc));
++    }
++    else
++        rc = VINF_SUCCESS;
++    if (    RT_SUCCESS(rc)
++        ||  rc == VERR_ALREADY_LOADED /* A competing process. */
++       )
++    {
++        LogRel(("SUP: Loaded %s (%s) at %#RKv - ModuleInit at %RKv and ModuleTerm at %RKv%s\n",
++                pszModule, pszFilename, uImageBase, (RTR0PTR)ModuleInit, (RTR0PTR)ModuleTerm,
++                fNativeLoader ? " using the native ring-0 loader" : ""));
++        if (fIsVMMR0)
++        {
++            g_pvVMMR0 = uImageBase;
++            LogRel(("SUP: VMMR0EntryEx located at %RKv and VMMR0EntryFast at %RKv\n", (RTR0PTR)VMMR0EntryEx, (RTR0PTR)VMMR0EntryFast));
++        }
++#ifdef RT_OS_WINDOWS
++        LogRel(("SUP: windbg> .reload /f %s=%#RKv\n", pszFilename, uImageBase));
++#endif
++        return VINF_SUCCESS;
++    }
++
++    /*
++     * Failed, bail out.
++     */
++    LogRel(("SUP: Loading failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc));
++    if (   pLoadReq->u.Out.uErrorMagic == SUPLDRLOAD_ERROR_MAGIC
++        && pLoadReq->u.Out.szError[0] != '\0')
++    {
++        LogRel(("SUP: %s\n", pLoadReq->u.Out.szError));
++        return RTErrInfoSet(pErrInfo, rc, pLoadReq->u.Out.szError);
++    }
++    return RTErrInfoSet(pErrInfo, rc, "SUP_IOCTL_LDR_LOAD failed");
++}
++
++
+ /**
+  * Worker for SUPR3LoadModule().
+  *
+@@ -356,6 +722,7 @@ static int supLoadModule(const char *psz
+     AssertPtrReturn(pszFilename, VERR_INVALID_PARAMETER);
+     AssertPtrReturn(pszModule, VERR_INVALID_PARAMETER);
+     AssertPtrReturn(ppvImageBase, VERR_INVALID_PARAMETER);
++    /** @todo abspath it right into SUPLDROPEN */
+     AssertReturn(strlen(pszModule) < RT_SIZEOFMEMB(SUPLDROPEN, u.In.szName), VERR_FILENAME_TOO_LONG);
+     char szAbsFilename[RT_SIZEOFMEMB(SUPLDROPEN, u.In.szFilename)];
+     rc = RTPathAbs(pszFilename, szAbsFilename, sizeof(szAbsFilename));
+@@ -371,8 +738,8 @@ static int supLoadModule(const char *psz
+      * Open image file and figure its size.
+      */
+     RTLDRMOD hLdrMod;
+-    rc = RTLdrOpen(pszFilename, 0, RTLDRARCH_HOST, &hLdrMod);
+-    if (!RT_SUCCESS(rc))
++    rc = RTLdrOpenEx(pszFilename, 0 /*fFlags*/, RTLDRARCH_HOST, &hLdrMod, pErrInfo);
++    if (RT_FAILURE(rc))
+     {
+         LogRel(("SUP: RTLdrOpen failed for %s (%s) %Rrc\n", pszModule, pszFilename, rc));
+         return rc;
+@@ -385,230 +752,109 @@ static int supLoadModule(const char *psz
+     rc = RTLdrEnumSymbols(hLdrMod, 0, NULL, 0, supLoadModuleCalcSizeCB, &CalcArgs);
+     if (RT_SUCCESS(rc))
+     {
+-        const uint32_t  offSymTab = RT_ALIGN_32(CalcArgs.cbImage, 8);
+-        const uint32_t  offStrTab = offSymTab + CalcArgs.cSymbols * sizeof(SUPLDRSYM);
+-        const uint32_t  cbImageWithTabs = RT_ALIGN_32(offStrTab + CalcArgs.cbStrings, 8);
+-
+         /*
+-         * Open the R0 image.
++         * Figure out the number of segments needed first.
+          */
+-        SUPLDROPEN OpenReq;
+-        OpenReq.Hdr.u32Cookie = g_u32Cookie;
+-        OpenReq.Hdr.u32SessionCookie = g_u32SessionCookie;
+-        OpenReq.Hdr.cbIn = SUP_IOCTL_LDR_OPEN_SIZE_IN;
+-        OpenReq.Hdr.cbOut = SUP_IOCTL_LDR_OPEN_SIZE_OUT;
+-        OpenReq.Hdr.fFlags = SUPREQHDR_FLAGS_DEFAULT;
+-        OpenReq.Hdr.rc = VERR_INTERNAL_ERROR;
+-        OpenReq.u.In.cbImageWithTabs = cbImageWithTabs;
+-        OpenReq.u.In.cbImageBits = (uint32_t)CalcArgs.cbImage;
+-        strcpy(OpenReq.u.In.szName, pszModule);
+-        strcpy(OpenReq.u.In.szFilename, pszFilename);
+-        if (!g_uSupFakeMode)
+-        {
+-            rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_LDR_OPEN, &OpenReq, SUP_IOCTL_LDR_OPEN_SIZE);
+-            if (RT_SUCCESS(rc))
+-                rc = OpenReq.Hdr.rc;
+-        }
+-        else
+-        {
+-            OpenReq.u.Out.fNeedsLoading = true;
+-            OpenReq.u.Out.pvImageBase = 0xef423420;
+-        }
+-        *ppvImageBase = (void *)OpenReq.u.Out.pvImageBase;
+-        if (    RT_SUCCESS(rc)
+-            &&  OpenReq.u.Out.fNeedsLoading)
++        SUPLDRCOMPSEGTABARGS SegArgs;
++        SegArgs.uStartRva   = 0;
++        SegArgs.uEndRva     = 0;
++        SegArgs.fProt       = RTMEM_PROT_READ;
++        SegArgs.iSegs       = 0;
++        SegArgs.cSegsAlloc  = 0;
++        SegArgs.paSegs      = NULL;
++        SegArgs.pErrInfo    = pErrInfo;
++        rc = RTLdrEnumSegments(hLdrMod, supLoadModuleCompileSegmentsCB, &SegArgs);
++        if (RT_SUCCESS(rc))
+         {
++            Assert(SegArgs.uEndRva <= RTLdrSize(hLdrMod));
++            SegArgs.uEndRva = (uint32_t)CalcArgs.cbImage; /* overflow is checked later */
++            if (SegArgs.uEndRva > SegArgs.uStartRva)
++            {
++                Log2(("supLoadModule:                  SUP Seg #%u: %#x LB %#x prot %#x\n",
++                      SegArgs.iSegs, SegArgs.uStartRva, SegArgs.uEndRva - SegArgs.uStartRva, SegArgs.fProt));
++                SegArgs.iSegs++;
++            }
++
++            const uint32_t offSymTab = RT_ALIGN_32(CalcArgs.cbImage, 8);
++            const uint32_t offStrTab = offSymTab + CalcArgs.cSymbols * sizeof(SUPLDRSYM);
++            const uint32_t offSegTab = RT_ALIGN_32(offStrTab + CalcArgs.cbStrings, 8);
++            const uint32_t cbImageWithEverything = RT_ALIGN_32(offSegTab + sizeof(SUPLDRSEG) * SegArgs.iSegs, 8);
++
+             /*
+-             * We need to load it.
+-             * Allocate memory for the image bits.
++             * Open the R0 image.
+              */
+-            PSUPLDRLOAD pLoadReq = (PSUPLDRLOAD)RTMemTmpAlloc(SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithTabs));
+-            if (pLoadReq)
++            SUPLDROPEN OpenReq;
++            OpenReq.Hdr.u32Cookie              = g_u32Cookie;
++            OpenReq.Hdr.u32SessionCookie       = g_u32SessionCookie;
++            OpenReq.Hdr.cbIn                   = SUP_IOCTL_LDR_OPEN_SIZE_IN;
++            OpenReq.Hdr.cbOut                  = SUP_IOCTL_LDR_OPEN_SIZE_OUT;
++            OpenReq.Hdr.fFlags                 = SUPREQHDR_FLAGS_DEFAULT;
++            OpenReq.Hdr.rc                     = VERR_INTERNAL_ERROR;
++            OpenReq.u.In.cbImageWithEverything = cbImageWithEverything;
++            OpenReq.u.In.cbImageBits           = (uint32_t)CalcArgs.cbImage;
++            strcpy(OpenReq.u.In.szName, pszModule);
++            strcpy(OpenReq.u.In.szFilename, pszFilename);
++            if (!g_uSupFakeMode)
++            {
++                rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_LDR_OPEN, &OpenReq, SUP_IOCTL_LDR_OPEN_SIZE);
++                if (RT_SUCCESS(rc))
++                    rc = OpenReq.Hdr.rc;
++            }
++            else
++            {
++                OpenReq.u.Out.fNeedsLoading = true;
++                OpenReq.u.Out.pvImageBase = 0xef423420;
++            }
++            *ppvImageBase = (void *)OpenReq.u.Out.pvImageBase;
++            if (    RT_SUCCESS(rc)
++                &&  OpenReq.u.Out.fNeedsLoading)
+             {
+                 /*
+-                 * Get the image bits.
++                 * We need to load it.
++                 *
++                 * Allocate the request and pass it to an inner work function
++                 * that populates it and sends it off to the driver.
+                  */
+-
+-                SUPLDRRESIMPARGS Args = { pszModule, pErrInfo };
+-                rc = RTLdrGetBits(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase,
+-                                  supLoadModuleResolveImport, &Args);
+-
+-                if (RT_SUCCESS(rc))
++                const uint32_t cbLoadReq = SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithEverything);
++                PSUPLDRLOAD    pLoadReq  = (PSUPLDRLOAD)RTMemTmpAlloc(cbLoadReq);
++                if (pLoadReq)
+                 {
+-                    /*
+-                     * Get the entry points.
+-                     */
+-                    RTUINTPTR VMMR0EntryFast = 0;
+-                    RTUINTPTR VMMR0EntryEx = 0;
+-                    RTUINTPTR SrvReqHandler = 0;
+-                    RTUINTPTR ModuleInit = 0;
+-                    RTUINTPTR ModuleTerm = 0;
+-                    const char *pszEp = NULL;
+-                    if (fIsVMMR0)
+-                    {
+-                        rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase,
+-                                              UINT32_MAX, pszEp = "VMMR0EntryFast", &VMMR0EntryFast);
+-                        if (RT_SUCCESS(rc))
+-                            rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase,
+-                                                  UINT32_MAX, pszEp = "VMMR0EntryEx", &VMMR0EntryEx);
+-                    }
+-                    else if (pszSrvReqHandler)
+-                        rc = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase,
+-                                              UINT32_MAX, pszEp = pszSrvReqHandler, &SrvReqHandler);
+-                    if (RT_SUCCESS(rc))
+-                    {
+-                        int rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase,
+-                                                   UINT32_MAX, pszEp = "ModuleInit", &ModuleInit);
+-                        if (RT_FAILURE(rc2))
+-                            ModuleInit = 0;
+-
+-                        rc2 = RTLdrGetSymbolEx(hLdrMod, &pLoadReq->u.In.abImage[0], (uintptr_t)OpenReq.u.Out.pvImageBase,
+-                                               UINT32_MAX, pszEp = "ModuleTerm", &ModuleTerm);
+-                        if (RT_FAILURE(rc2))
+-                            ModuleTerm = 0;
+-                    }
+-                    if (RT_SUCCESS(rc))
+-                    {
+-                        /*
+-                         * Create the symbol and string tables.
+-                         */
+-                        SUPLDRCREATETABSARGS CreateArgs;
+-                        CreateArgs.cbImage = CalcArgs.cbImage;
+-                        CreateArgs.pSym    = (PSUPLDRSYM)&pLoadReq->u.In.abImage[offSymTab];
+-                        CreateArgs.pszBase =     (char *)&pLoadReq->u.In.abImage[offStrTab];
+-                        CreateArgs.psz     = CreateArgs.pszBase;
+-                        rc = RTLdrEnumSymbols(hLdrMod, 0, NULL, 0, supLoadModuleCreateTabsCB, &CreateArgs);
+-                        if (RT_SUCCESS(rc))
+-                        {
+-                            AssertRelease((size_t)(CreateArgs.psz - CreateArgs.pszBase) <= CalcArgs.cbStrings);
+-                            AssertRelease((size_t)(CreateArgs.pSym - (PSUPLDRSYM)&pLoadReq->u.In.abImage[offSymTab]) <= CalcArgs.cSymbols);
+-
+-                            /*
+-                             * Upload the image.
+-                             */
+-                            pLoadReq->Hdr.u32Cookie = g_u32Cookie;
+-                            pLoadReq->Hdr.u32SessionCookie = g_u32SessionCookie;
+-                            pLoadReq->Hdr.cbIn = SUP_IOCTL_LDR_LOAD_SIZE_IN(cbImageWithTabs);
+-                            pLoadReq->Hdr.cbOut = SUP_IOCTL_LDR_LOAD_SIZE_OUT;
+-                            pLoadReq->Hdr.fFlags = SUPREQHDR_FLAGS_MAGIC | SUPREQHDR_FLAGS_EXTRA_IN;
+-                            pLoadReq->Hdr.rc = VERR_INTERNAL_ERROR;
+-
+-                            pLoadReq->u.In.pfnModuleInit              = (RTR0PTR)ModuleInit;
+-                            pLoadReq->u.In.pfnModuleTerm              = (RTR0PTR)ModuleTerm;
+-                            if (fIsVMMR0)
+-                            {
+-                                pLoadReq->u.In.eEPType                = SUPLDRLOADEP_VMMR0;
+-                                pLoadReq->u.In.EP.VMMR0.pvVMMR0       = OpenReq.u.Out.pvImageBase;
+-                                pLoadReq->u.In.EP.VMMR0.pvVMMR0EntryFast= (RTR0PTR)VMMR0EntryFast;
+-                                pLoadReq->u.In.EP.VMMR0.pvVMMR0EntryEx  = (RTR0PTR)VMMR0EntryEx;
+-                            }
+-                            else if (pszSrvReqHandler)
+-                            {
+-                                pLoadReq->u.In.eEPType                = SUPLDRLOADEP_SERVICE;
+-                                pLoadReq->u.In.EP.Service.pfnServiceReq = (RTR0PTR)SrvReqHandler;
+-                                pLoadReq->u.In.EP.Service.apvReserved[0] = NIL_RTR0PTR;
+-                                pLoadReq->u.In.EP.Service.apvReserved[1] = NIL_RTR0PTR;
+-                                pLoadReq->u.In.EP.Service.apvReserved[2] = NIL_RTR0PTR;
+-                            }
+-                            else
+-                                pLoadReq->u.In.eEPType                = SUPLDRLOADEP_NOTHING;
+-                            pLoadReq->u.In.offStrTab                  = offStrTab;
+-                            pLoadReq->u.In.cbStrTab                   = (uint32_t)CalcArgs.cbStrings;
+-                            AssertRelease(pLoadReq->u.In.cbStrTab == CalcArgs.cbStrings);
+-                            pLoadReq->u.In.cbImageBits                = (uint32_t)CalcArgs.cbImage;
+-                            pLoadReq->u.In.offSymbols                 = offSymTab;
+-                            pLoadReq->u.In.cSymbols                   = CalcArgs.cSymbols;
+-                            pLoadReq->u.In.cbImageWithTabs            = cbImageWithTabs;
+-                            pLoadReq->u.In.pvImageBase                = OpenReq.u.Out.pvImageBase;
+-                            if (!g_uSupFakeMode)
+-                            {
+-                                rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_LDR_LOAD, pLoadReq, SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithTabs));
+-                                if (RT_SUCCESS(rc))
+-                                    rc = pLoadReq->Hdr.rc;
+-                                else
+-                                    LogRel(("SUP: SUP_IOCTL_LDR_LOAD ioctl for %s (%s) failed rc=%Rrc\n", pszModule, pszFilename, rc));
+-                            }
+-                            else
+-                                rc = VINF_SUCCESS;
+-                            if (    RT_SUCCESS(rc)
+-                                ||  rc == VERR_ALREADY_LOADED /* A competing process. */
+-                               )
+-                            {
+-                                LogRel(("SUP: Loaded %s (%s) at %#RKv - ModuleInit at %RKv and ModuleTerm at %RKv%s\n",
+-                                        pszModule, pszFilename, OpenReq.u.Out.pvImageBase, (RTR0PTR)ModuleInit, (RTR0PTR)ModuleTerm,
+-                                        OpenReq.u.Out.fNativeLoader ? " using the native ring-0 loader" : ""));
+-                                if (fIsVMMR0)
+-                                {
+-                                    g_pvVMMR0 = OpenReq.u.Out.pvImageBase;
+-                                    LogRel(("SUP: VMMR0EntryEx located at %RKv and VMMR0EntryFast at %RKv\n", (RTR0PTR)VMMR0EntryEx, (RTR0PTR)VMMR0EntryFast));
+-                                }
+-#ifdef RT_OS_WINDOWS
+-                                LogRel(("SUP: windbg> .reload /f %s=%#RKv\n", pszFilename, OpenReq.u.Out.pvImageBase));
+-#endif
+-
+-                                RTMemTmpFree(pLoadReq);
+-                                RTLdrClose(hLdrMod);
+-                                return VINF_SUCCESS;
+-                            }
+-
+-                            /*
+-                             * Failed, bail out.
+-                             */
+-                            LogRel(("SUP: Loading failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc));
+-                            if (   pLoadReq->u.Out.uErrorMagic == SUPLDRLOAD_ERROR_MAGIC
+-                                && pLoadReq->u.Out.szError[0] != '\0')
+-                            {
+-                                LogRel(("SUP: %s\n", pLoadReq->u.Out.szError));
+-                                RTErrInfoSet(pErrInfo, rc, pLoadReq->u.Out.szError);
+-                            }
+-                            else
+-                                RTErrInfoSet(pErrInfo, rc, "SUP_IOCTL_LDR_LOAD failed");
+-                        }
+-                        else
+-                        {
+-                            LogRel(("SUP: RTLdrEnumSymbols failed for %s (%s) rc=%Rrc\n", pszModule, pszFilename, rc));
+-                            RTErrInfoSetF(pErrInfo, rc, "RTLdrEnumSymbols #2 failed");
+-                        }
+-                    }
+-                    else
+-                    {
+-                        LogRel(("SUP: Failed to get entry point '%s' for %s (%s) rc=%Rrc\n", pszEp, pszModule, pszFilename, rc));
+-                        RTErrInfoSetF(pErrInfo, rc, "Failed to resolve entry point '%s'", pszEp);
+-                    }
++                    rc = supLoadModuleInner(hLdrMod, pLoadReq, cbImageWithEverything, OpenReq.u.Out.pvImageBase, CalcArgs.cbImage,
++                                            pszModule, pszFilename, OpenReq.u.Out.fNativeLoader, fIsVMMR0, pszSrvReqHandler,
++                                            offSymTab, CalcArgs.cSymbols,
++                                            offStrTab, CalcArgs.cbStrings,
++                                            offSegTab, SegArgs.iSegs,
++                                            pErrInfo);
++                    RTMemTmpFree(pLoadReq);
+                 }
+                 else
+                 {
+-                    LogRel(("SUP: RTLdrGetBits failed for %s (%s). rc=%Rrc\n", pszModule, pszFilename, rc));
+-                    if (!RTErrInfoIsSet(pErrInfo))
+-                        RTErrInfoSetF(pErrInfo, rc, "RTLdrGetBits failed");
++                    AssertMsgFailed(("failed to allocated %u bytes for SUPLDRLOAD_IN structure!\n", SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithEverything)));
++                    rc = RTErrInfoSetF(pErrInfo, VERR_NO_TMP_MEMORY, "Failed to allocate %u bytes for the load request",
++                                       SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithEverything));
+                 }
+-                RTMemTmpFree(pLoadReq);
+             }
+-            else
++            /*
++             * Already loaded?
++             */
++            else if (RT_SUCCESS(rc))
+             {
+-                AssertMsgFailed(("failed to allocated %u bytes for SUPLDRLOAD_IN structure!\n", SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithTabs)));
+-                rc = VERR_NO_TMP_MEMORY;
+-                RTErrInfoSetF(pErrInfo, rc, "Failed to allocate %u bytes for the load request", SUP_IOCTL_LDR_LOAD_SIZE(cbImageWithTabs));
+-            }
+-        }
+-        /*
+-         * Already loaded?
+-         */
+-        else if (RT_SUCCESS(rc))
+-        {
+-            if (fIsVMMR0)
+-                g_pvVMMR0 = OpenReq.u.Out.pvImageBase;
+-            LogRel(("SUP: Opened %s (%s) at %#RKv%s.\n", pszModule, pszFilename, OpenReq.u.Out.pvImageBase,
+-                    OpenReq.u.Out.fNativeLoader ? " loaded by the native ring-0 loader" : ""));
++                if (fIsVMMR0)
++                    g_pvVMMR0 = OpenReq.u.Out.pvImageBase;
++                LogRel(("SUP: Opened %s (%s) at %#RKv%s.\n", pszModule, pszFilename, OpenReq.u.Out.pvImageBase,
++                        OpenReq.u.Out.fNativeLoader ? " loaded by the native ring-0 loader" : ""));
+ #ifdef RT_OS_WINDOWS
+-            LogRel(("SUP: windbg> .reload /f %s=%#RKv\n", pszFilename, OpenReq.u.Out.pvImageBase));
++                LogRel(("SUP: windbg> .reload /f %s=%#RKv\n", pszFilename, OpenReq.u.Out.pvImageBase));
+ #endif
++            }
++            /*
++             * No, failed.
++             */
++            else
++                RTErrInfoSet(pErrInfo, rc, "SUP_IOCTL_LDR_OPEN failed");
+         }
+-        /*
+-         * No, failed.
+-         */
+-        else
+-            RTErrInfoSet(pErrInfo, rc, "SUP_IOCTL_LDR_OPEN failed");
++        else if (!RTErrInfoIsSet(pErrInfo) && pErrInfo)
++            RTErrInfoSetF(pErrInfo, rc, "RTLdrEnumSegments #1 failed");
+     }
+     else
+         RTErrInfoSetF(pErrInfo, rc, "RTLdrEnumSymbols #1 failed");
+@@ -682,10 +928,10 @@ SUPR3DECL(int) SUPR3GetSymbolR0(void *pv
+ }
+ 
+ 
+-SUPR3DECL(int) SUPR3LoadVMM(const char *pszFilename)
++SUPR3DECL(int) SUPR3LoadVMM(const char *pszFilename, PRTERRINFO pErrInfo)
+ {
+     void *pvImageBase;
+-    return SUPR3LoadModule(pszFilename, "VMMR0.r0", &pvImageBase, NULL /*pErrInfo*/);
++    return SUPR3LoadModule(pszFilename, "VMMR0.r0", &pvImageBase, pErrInfo);
+ }
+ 
+ 
+--- a/src/VBox/HostDrivers/Support/testcase/tstInt.cpp
++++ b/src/VBox/HostDrivers/Support/testcase/tstInt.cpp
+@@ -76,7 +76,8 @@ int main(int argc, char **argv)
+         /*
+          * Load VMM code.
+          */
+-        rc = SUPR3LoadVMM(szAbsFile);
++        RTERRINFOSTATIC ErrInfo;
++        rc = SUPR3LoadVMM(szAbsFile, RTErrInfoInitStatic(&ErrInfo));
+         if (RT_SUCCESS(rc))
+         {
+             /*
+@@ -208,7 +209,7 @@ int main(int argc, char **argv)
+         }
+         else
+         {
+-            RTPrintf("tstInt: SUPR3LoadVMM failed with rc=%Rrc\n", rc);
++            RTPrintf("tstInt: SUPR3LoadVMM failed with rc=%Rrc%#RTeim\n", rc, &ErrInfo.Core);
+             rcRet++;
+         }
+ 
+--- a/src/VBox/Devices/Makefile.kmk
++++ b/src/VBox/Devices/Makefile.kmk
+@@ -52,7 +52,7 @@ if !defined(VBOX_ONLY_EXTPACKS)
+  if1of ($(KBUILD_TARGET_ARCH), $(VBOX_SUPPORTED_HOST_ARCHS))
+   LIBRARIES += ServicesR0
+   DLLS      += VBoxDDU VBoxDD VBoxDD2
+-  SYSMODS   += VBoxDDR0
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VBoxDDR0
+   ifdef VBOX_WITH_RAW_MODE
+    SYSMODS   += VBoxDDRC
+   endif
+@@ -1370,7 +1370,7 @@ if defined(VBOX_WITH_EXTPACK) && defined
+ 	USB/DevXHCI.cpp
+   $(call VBOX_SET_VER_INFO_DLL,VBoxEhciR3,PUEL Extension Pack - EHCI Device)
+ 
+-  SYSMODS += VBoxEhciR0
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VBoxEhciR0
+   VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel
+   VBoxEhciR0_SOURCES  = \
+ 	USB/DevEHCI.cpp \
+@@ -1406,7 +1406,7 @@ if defined(VBOX_WITH_EXTPACK) && defined
+   VBoxPciRawDrv_SOURCES     = Bus/DrvPciRaw.cpp
+   $(call VBOX_SET_VER_INFO_DLL,VBoxPciRawDrv,PUEL Extension Pack - PCI Passthrough Driver)
+ 
+-  SYSMODS += VBoxPciRawR0
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VBoxPciRawR0
+   VBoxPciRawR0_TEMPLATE     = VBoxR0ExtPackPuel
+   VBoxPciRawR0_SOURCES      = Bus/DevPciRaw.cpp
+   $(call VBOX_SET_VER_INFO_R0,VBoxPciRawR0,PUEL Extension Pack - PCI Passthrough Driver$(COMMA) ring-0)
+@@ -1424,7 +1424,7 @@ if defined(VBOX_WITH_EXTPACK) && defined
+   	Storage/DevNVMe.cpp
+   $(call VBOX_SET_VER_INFO_DLL,VBoxNvmeR3,PUEL Extension Pack - NVMe Device)
+ 
+-  SYSMODS += VBoxNvmeR0
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VBoxNvmeR0
+   VBoxNvmeR0_TEMPLATE = VBoxR0ExtPackPuel
+   VBoxNvmeR0_SOURCES  = \
+   	Storage/DevNVMe.cpp
+--- a/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
++++ b/src/VBox/ExtPacks/VBoxDTrace/Makefile.kmk
+@@ -242,7 +242,7 @@ if defined(VBOX_WITH_EXTPACK_VBOXDTRACE)
+  # The ring-0 part of VBoxDTrace.
+  #
+  ifneq ($(KBUILD_TARGET),solaris) # disabled on solaris - neiter needed nor currently able to build it here.
+-  SYSMODS += VBoxDTraceR0
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VBoxDTraceR0
+  endif
+  VBoxDTraceR0_TEMPLATE = VBoxR0ExtPackDTrace
+  VBoxDTraceR0_DEFS = IN_VBOXDTRACE_R0 IN_RT_R0
+--- a/src/VBox/ExtPacks/BusMouseSample/Makefile.kmk
++++ b/src/VBox/ExtPacks/BusMouseSample/Makefile.kmk
+@@ -83,7 +83,7 @@ DLLS += VBoxBusMouseR3
+ VBoxBusMouseR3_TEMPLATE = VBoxR3ExtPackBusMouse
+ VBoxBusMouseR3_SOURCES  = DevBusMouse.cpp
+ 
+-SYSMODS += VBoxBusMouseR0
++$(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VBoxBusMouseR0
+ VBoxBusMouseR0_TEMPLATE = VBoxR0ExtPackBusMouse
+ VBoxBusMouseR0_SOURCES  = DevBusMouse.cpp
+ 
+--- a/src/VBox/Runtime/testcase/Makefile.kmk
++++ b/src/VBox/Runtime/testcase/Makefile.kmk
+@@ -210,13 +210,13 @@ if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
+   	tstRTR0ThreadDriver
+  endif
+  if1of ($(KBUILD_TARGET_ARCH), $(VBOX_SUPPORTED_HOST_ARCHS))
+-  SYSMODS += \
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += \
+   	tstLdrObjR0
+   ifdef VBOX_WITH_RAW_MODE
+    SYSMODS += tstLdrObj
+   endif
+  endif
+- SYSMODS += \
++ $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += \
+  	tstRTR0MemUserKernel \
+  	tstRTR0SemMutex \
+  	tstRTR0Timer \
+@@ -224,7 +224,7 @@ if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
+  	tstRTR0Thread
+  if1of ($(KBUILD_TARGET), solaris darwin)
+   PROGRAMS += tstRTR0DbgKrnlInfoDriver
+-  SYSMODS += tstRTR0DbgKrnlInfo
++  $(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += tstRTR0DbgKrnlInfo
+  endif # VBOX_SUPPORTED_HOST_ARCHS only
+ 
+ endif
+--- a/src/VBox/VMM/Makefile.kmk
++++ b/src/VBox/VMM/Makefile.kmk
+@@ -435,7 +435,7 @@ ifndef VBOX_ONLY_EXTPACKS
+ #
+ # VMMR0.r0
+ #
+-SYSMODS += VMMR0
++$(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += VMMR0
+ VMMR0_TEMPLATE  = VBoxR0
+ VMMR0_SYSSUFF   = .r0
+ 
+--- a/src/VBox/ValidationKit/utils/misc/Makefile.kmk
++++ b/src/VBox/ValidationKit/utils/misc/Makefile.kmk
+@@ -31,7 +31,7 @@ PROGRAMS += LoadGenerator
+ LoadGenerator_TEMPLATE = VBoxValidationKitR3Host
+ LoadGenerator_SOURCES  = loadgenerator.cpp
+ 
+-SYSMODS += loadgeneratorR0
++$(if-expr defined(VBOX_WITH_VBOXR0_AS_DLL),DLLS,SYSMODS) += loadgeneratorR0
+ loadgeneratorR0_TEMPLATE = VBoxValidationKitR0
+ loadgeneratorR0_SOURCES = loadgeneratorR0.cpp
+ 
+--- a/src/VBox/HostDrivers/Support/SUPLib.cpp
++++ b/src/VBox/HostDrivers/Support/SUPLib.cpp
+@@ -275,9 +275,9 @@ SUPR3DECL(int) SUPR3InitEx(bool fUnrestr
+         CookieReq.Hdr.rc = VERR_INTERNAL_ERROR;
+         strcpy(CookieReq.u.In.szMagic, SUPCOOKIE_MAGIC);
+         CookieReq.u.In.u32ReqVersion = SUPDRV_IOC_VERSION;
+-        const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x002d0000
++        const uint32_t uMinVersion = /*(SUPDRV_IOC_VERSION & 0xffff0000) == 0x002d0000
+                                    ? 0x002d0001
+-                                   : SUPDRV_IOC_VERSION & 0xffff0000;
++                                   :*/ SUPDRV_IOC_VERSION & 0xffff0000;
+         CookieReq.u.In.u32MinVersion = uMinVersion;
+         rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_COOKIE, &CookieReq, SUP_IOCTL_COOKIE_SIZE);
+         if (    RT_SUCCESS(rc)
+--- a/src/VBox/HostDrivers/Support/SUPDrvIOC.h
++++ b/src/VBox/HostDrivers/Support/SUPDrvIOC.h
+@@ -220,9 +220,10 @@ typedef SUPREQHDR *PSUPREQHDR;
+  *  -# When increment the major number, execute all pending work.
+  *
+  * @todo Pending work on next major version change:
+- *          - Move SUP_IOCTL_FAST_DO_NOP and SUP_VMMR0_DO_NEM_RUN after NEM.
++ *          - Nothing.
++ * @note 0x002f0000 is used by 6.0. The next version number must be 0x00300000.
+  */
+-#define SUPDRV_IOC_VERSION                              0x002d0001
++#define SUPDRV_IOC_VERSION                              0x002e0000
+ 
+ /** SUP_IOCTL_COOKIE. */
+ typedef struct SUPCOOKIE
+@@ -314,8 +315,8 @@ typedef struct SUPLDROPEN
+     {
+         struct
+         {
+-            /** Size of the image we'll be loading (including tables). */
+-            uint32_t        cbImageWithTabs;
++            /** Size of the image we'll be loading (including all tables). */
++            uint32_t        cbImageWithEverything;
+             /** The size of the image bits. (Less or equal to cbImageWithTabs.) */
+             uint32_t        cbImageBits;
+             /** Image name.
+@@ -390,6 +391,29 @@ typedef SUPLDRSYM *PSUPLDRSYM;
+ /** Pointer to a const symbol table entry. */
+ typedef SUPLDRSYM const *PCSUPLDRSYM;
+ 
++#define SUPLDR_PROT_READ    1   /**< Grant read access (RTMEM_PROT_READ). */
++#define SUPLDR_PROT_WRITE   2   /**< Grant write access (RTMEM_PROT_WRITE). */
++#define SUPLDR_PROT_EXEC    4   /**< Grant execute access (RTMEM_PROT_EXEC). */
++
++/**
++ * A segment table entry - chiefly for conveying memory protection.
++ */
++typedef struct SUPLDRSEG
++{
++    /** The RVA of the segment. */
++    uint32_t        off;
++    /** The size of the segment. */
++    uint32_t        cb : 28;
++    /** The segment protection (SUPLDR_PROT_XXX). */
++    uint32_t        fProt : 3;
++    /** MBZ. */
++    uint32_t        fUnused;
++} SUPLDRSEG;
++/** Pointer to a segment table entry. */
++typedef SUPLDRSEG *PSUPLDRSEG;
++/** Pointer to a const segment table entry. */
++typedef SUPLDRSEG const *PCSUPLDRSEG;
++
+ /**
+  * SUPLDRLOAD::u::In::EP type.
+  */
+@@ -443,7 +467,7 @@ typedef struct SUPLDRLOAD
+             /** The size of the image bits (starting at offset 0 and
+              * approaching offSymbols). */
+             uint32_t        cbImageBits;
+-            /** The offset of the symbol table. */
++            /** The offset of the symbol table (SUPLDRSYM array). */
+             uint32_t        offSymbols;
+             /** The number of entries in the symbol table. */
+             uint32_t        cSymbols;
+@@ -451,8 +475,12 @@ typedef struct SUPLDRLOAD
+             uint32_t        offStrTab;
+             /** Size of the string table. */
+             uint32_t        cbStrTab;
++            /** Offset to the segment table (SUPLDRSEG array). */
++            uint32_t        offSegments;
++            /** Number of segments. */
++            uint32_t        cSegments;
+             /** Size of image data in achImage. */
+-            uint32_t        cbImageWithTabs;
++            uint32_t        cbImageWithEverything;
+             /** The image data. */
+             uint8_t         abImage[1];
+         } In;
+--- a/src/VBox/HostDrivers/Support/SUPDrvInternal.h
++++ b/src/VBox/HostDrivers/Support/SUPDrvInternal.h
+@@ -145,6 +145,12 @@
+ # define SUPDRV_USE_MUTEX_FOR_GIP
+ #endif
+ 
++#if defined(RT_OS_LINUX) /** @todo make everyone do this */
++/** Use the RTR0MemObj API rather than the RTMemExecAlloc for the images.
++ * This is a good idea in general, but a necessity for @bugref{9801}. */
++# define SUPDRV_USE_MEMOBJ_FOR_LDR_IMAGE
++#endif
++
+ 
+ /**
+  * OS debug print macro.
+@@ -326,15 +332,20 @@ typedef struct SUPDRVLDRIMAGE
+     struct SUPDRVLDRIMAGE * volatile pNext;
+     /** Pointer to the image. */
+     void                           *pvImage;
++#ifdef SUPDRV_USE_MEMOBJ_FOR_LDR_IMAGE
++    /** The memory object for the module allocation. */
++    RTR0MEMOBJ                      hMemObjImage;
++#else
+     /** Pointer to the allocated image buffer.
+      * pvImage is 32-byte aligned or it may governed by the native loader (this
+      * member is NULL then). */
+     void                           *pvImageAlloc;
++#endif
+     /** Magic value (SUPDRVLDRIMAGE_MAGIC). */
+     uint32_t                        uMagic;
+     /** Size of the image including the tables. This is mainly for verification
+      * of the load request. */
+-    uint32_t                        cbImageWithTabs;
++    uint32_t                        cbImageWithEverything;
+     /** Size of the image. */
+     uint32_t                        cbImageBits;
+     /** The number of entries in the symbol table. */
+@@ -345,6 +356,10 @@ typedef struct SUPDRVLDRIMAGE
+     char                           *pachStrTab;
+     /** Size of the string table. */
+     uint32_t                        cbStrTab;
++    /** Number of segments. */
++    uint32_t                        cSegments;
++    /** Segments (for memory protection). */
++    PSUPLDRSEG                      paSegments;
+     /** Pointer to the optional module initialization callback. */
+     PFNR0MODULEINIT                 pfnModuleInit;
+     /** Pointer to the optional module termination callback. */
+--- a/src/VBox/HostDrivers/Support/SUPDrv.cpp
++++ b/src/VBox/HostDrivers/Support/SUPDrv.cpp
+@@ -1734,11 +1734,10 @@ static int supdrvIOCtlInnerUnrestricted(
+             /* validate */
+             PSUPLDROPEN pReq = (PSUPLDROPEN)pReqHdr;
+             REQ_CHECK_SIZES(SUP_IOCTL_LDR_OPEN);
+-            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithTabs > 0);
+-            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithTabs < 16*_1M);
++            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithEverything > 0);
++            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithEverything < 16*_1M);
+             REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits > 0);
+-            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits > 0);
+-            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits < pReq->u.In.cbImageWithTabs);
++            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits < pReq->u.In.cbImageWithEverything);
+             REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.szName[0]);
+             REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, RTStrEnd(pReq->u.In.szName, sizeof(pReq->u.In.szName)));
+             REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, supdrvIsLdrModuleNameValid(pReq->u.In.szName));
+@@ -1754,19 +1753,29 @@ static int supdrvIOCtlInnerUnrestricted(
+             /* validate */
+             PSUPLDRLOAD pReq = (PSUPLDRLOAD)pReqHdr;
+             REQ_CHECK_EXPR(Name, pReq->Hdr.cbIn >= SUP_IOCTL_LDR_LOAD_SIZE_IN(32));
+-            REQ_CHECK_SIZES_EX(SUP_IOCTL_LDR_LOAD, SUP_IOCTL_LDR_LOAD_SIZE_IN(pReq->u.In.cbImageWithTabs), SUP_IOCTL_LDR_LOAD_SIZE_OUT);
+-            REQ_CHECK_EXPR(SUP_IOCTL_LDR_LOAD, pReq->u.In.cSymbols <= 16384);
++            REQ_CHECK_SIZES_EX(SUP_IOCTL_LDR_LOAD, SUP_IOCTL_LDR_LOAD_SIZE_IN(pReq->u.In.cbImageWithEverything), SUP_IOCTL_LDR_LOAD_SIZE_OUT);
+             REQ_CHECK_EXPR_FMT(     !pReq->u.In.cSymbols
+-                               ||   (   pReq->u.In.offSymbols < pReq->u.In.cbImageWithTabs
+-                                     && pReq->u.In.offSymbols + pReq->u.In.cSymbols * sizeof(SUPLDRSYM) <= pReq->u.In.cbImageWithTabs),
+-                               ("SUP_IOCTL_LDR_LOAD: offSymbols=%#lx cSymbols=%#lx cbImageWithTabs=%#lx\n", (long)pReq->u.In.offSymbols,
+-                                (long)pReq->u.In.cSymbols, (long)pReq->u.In.cbImageWithTabs));
++                               ||   (   pReq->u.In.cSymbols <= 16384
++                                     && pReq->u.In.offSymbols >= pReq->u.In.cbImageBits
++                                     && pReq->u.In.offSymbols < pReq->u.In.cbImageWithEverything
++                                     && pReq->u.In.offSymbols + pReq->u.In.cSymbols * sizeof(SUPLDRSYM) <= pReq->u.In.cbImageWithEverything),
++                               ("SUP_IOCTL_LDR_LOAD: offSymbols=%#lx cSymbols=%#lx cbImageWithEverything=%#lx\n", (long)pReq->u.In.offSymbols,
++                                (long)pReq->u.In.cSymbols, (long)pReq->u.In.cbImageWithEverything));
+             REQ_CHECK_EXPR_FMT(     !pReq->u.In.cbStrTab
+-                               ||   (   pReq->u.In.offStrTab < pReq->u.In.cbImageWithTabs
+-                                     && pReq->u.In.offStrTab + pReq->u.In.cbStrTab <= pReq->u.In.cbImageWithTabs
+-                                     && pReq->u.In.cbStrTab <= pReq->u.In.cbImageWithTabs),
+-                               ("SUP_IOCTL_LDR_LOAD: offStrTab=%#lx cbStrTab=%#lx cbImageWithTabs=%#lx\n", (long)pReq->u.In.offStrTab,
+-                                (long)pReq->u.In.cbStrTab, (long)pReq->u.In.cbImageWithTabs));
++                               ||   (   pReq->u.In.offStrTab < pReq->u.In.cbImageWithEverything
++                                     && pReq->u.In.offStrTab >= pReq->u.In.cbImageBits
++                                     && pReq->u.In.offStrTab + pReq->u.In.cbStrTab <= pReq->u.In.cbImageWithEverything
++                                     && pReq->u.In.cbStrTab <= pReq->u.In.cbImageWithEverything),
++                               ("SUP_IOCTL_LDR_LOAD: offStrTab=%#lx cbStrTab=%#lx cbImageWithEverything=%#lx\n", (long)pReq->u.In.offStrTab,
++                                (long)pReq->u.In.cbStrTab, (long)pReq->u.In.cbImageWithEverything));
++            REQ_CHECK_EXPR_FMT(   pReq->u.In.cSegments >= 1
++                               && pReq->u.In.cSegments <= 128
++                               && pReq->u.In.cSegments <= pReq->u.In.cbImageBits / PAGE_SIZE
++                               && pReq->u.In.offSegments >= pReq->u.In.cbImageBits
++                               && pReq->u.In.offSegments < pReq->u.In.cbImageWithEverything
++                               && pReq->u.In.offSegments + pReq->u.In.cSegments * sizeof(SUPLDRSEG) <= pReq->u.In.cbImageWithEverything,
++                               ("SUP_IOCTL_LDR_LOAD: offSegments=%#lx cSegments=%#lx cbImageWithEverything=%#lx\n", (long)pReq->u.In.offSegments,
++                                (long)pReq->u.In.cSegments, (long)pReq->u.In.cbImageWithEverything));
+ 
+             if (pReq->u.In.cSymbols)
+             {
+@@ -1774,15 +1783,37 @@ static int supdrvIOCtlInnerUnrestricted(
+                 PSUPLDRSYM paSyms = (PSUPLDRSYM)&pReq->u.In.abImage[pReq->u.In.offSymbols];
+                 for (i = 0; i < pReq->u.In.cSymbols; i++)
+                 {
+-                    REQ_CHECK_EXPR_FMT(paSyms[i].offSymbol < pReq->u.In.cbImageWithTabs,
+-                                       ("SUP_IOCTL_LDR_LOAD: sym #%ld: symb off %#lx (max=%#lx)\n", (long)i, (long)paSyms[i].offSymbol, (long)pReq->u.In.cbImageWithTabs));
++                    REQ_CHECK_EXPR_FMT(paSyms[i].offSymbol < pReq->u.In.cbImageWithEverything,
++                                       ("SUP_IOCTL_LDR_LOAD: sym #%ld: symb off %#lx (max=%#lx)\n", (long)i, (long)paSyms[i].offSymbol, (long)pReq->u.In.cbImageWithEverything));
+                     REQ_CHECK_EXPR_FMT(paSyms[i].offName < pReq->u.In.cbStrTab,
+-                                       ("SUP_IOCTL_LDR_LOAD: sym #%ld: name off %#lx (max=%#lx)\n", (long)i, (long)paSyms[i].offName, (long)pReq->u.In.cbImageWithTabs));
++                                       ("SUP_IOCTL_LDR_LOAD: sym #%ld: name off %#lx (max=%#lx)\n", (long)i, (long)paSyms[i].offName, (long)pReq->u.In.cbImageWithEverything));
+                     REQ_CHECK_EXPR_FMT(RTStrEnd((char const *)&pReq->u.In.abImage[pReq->u.In.offStrTab + paSyms[i].offName],
+                                                 pReq->u.In.cbStrTab - paSyms[i].offName),
+-                                       ("SUP_IOCTL_LDR_LOAD: sym #%ld: unterminated name! (%#lx / %#lx)\n", (long)i, (long)paSyms[i].offName, (long)pReq->u.In.cbImageWithTabs));
++                                       ("SUP_IOCTL_LDR_LOAD: sym #%ld: unterminated name! (%#lx / %#lx)\n", (long)i, (long)paSyms[i].offName, (long)pReq->u.In.cbImageWithEverything));
+                 }
+             }
++            {
++                uint32_t i;
++                uint32_t offPrevEnd = 0;
++                PSUPLDRSEG paSegs = (PSUPLDRSEG)&pReq->u.In.abImage[pReq->u.In.offSegments];
++                for (i = 0; i < pReq->u.In.cSegments; i++)
++                {
++                    REQ_CHECK_EXPR_FMT(paSegs[i].off < pReq->u.In.cbImageBits && !(paSegs[i].off & PAGE_OFFSET_MASK),
++                                       ("SUP_IOCTL_LDR_LOAD: seg #%ld: off %#lx (max=%#lx)\n", (long)i, (long)paSegs[i].off, (long)pReq->u.In.cbImageBits));
++                    REQ_CHECK_EXPR_FMT(paSegs[i].cb <= pReq->u.In.cbImageBits,
++                                       ("SUP_IOCTL_LDR_LOAD: seg #%ld: cb %#lx (max=%#lx)\n", (long)i, (long)paSegs[i].cb, (long)pReq->u.In.cbImageBits));
++                    REQ_CHECK_EXPR_FMT(paSegs[i].off + paSegs[i].cb <= pReq->u.In.cbImageBits,
++                                       ("SUP_IOCTL_LDR_LOAD: seg #%ld: off %#lx + cb %#lx = %#lx (max=%#lx)\n", (long)i, (long)paSegs[i].off, (long)paSegs[i].cb, (long)(paSegs[i].off + paSegs[i].cb), (long)pReq->u.In.cbImageBits));
++                    REQ_CHECK_EXPR_FMT(paSegs[i].fProt != 0,
++                                       ("SUP_IOCTL_LDR_LOAD: seg #%ld: off %#lx + cb %#lx\n", (long)i, (long)paSegs[i].off, (long)paSegs[i].cb));
++                    REQ_CHECK_EXPR_FMT(paSegs[i].fUnused == 0, ("SUP_IOCTL_LDR_LOAD: seg #%ld: fUnused=1\n", (long)i));
++                    REQ_CHECK_EXPR_FMT(offPrevEnd == paSegs[i].off,
++                                       ("SUP_IOCTL_LDR_LOAD: seg #%ld: off %#lx offPrevEnd %#lx\n", (long)i, (long)paSegs[i].off, (long)offPrevEnd));
++                    offPrevEnd = paSegs[i].off + paSegs[i].cb;
++                }
++                REQ_CHECK_EXPR_FMT(offPrevEnd == pReq->u.In.cbImageBits,
++                                   ("SUP_IOCTL_LDR_LOAD: offPrevEnd %#lx cbImageBits %#lx\n", (long)i, (long)offPrevEnd, (long)pReq->u.In.cbImageBits));
++            }
+ 
+             /* execute */
+             pReq->Hdr.rc = supdrvIOCtl_LdrLoad(pDevExt, pSession, pReq);
+@@ -5021,7 +5052,7 @@ static int supdrvIOCtl_LdrOpen(PSUPDRVDE
+     size_t          cchName = strlen(pReq->u.In.szName); /* (caller checked < 32). */
+     SUPDRV_CHECK_SMAP_SETUP();
+     SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+-    LogFlow(("supdrvIOCtl_LdrOpen: szName=%s cbImageWithTabs=%d\n", pReq->u.In.szName, pReq->u.In.cbImageWithTabs));
++    LogFlow(("supdrvIOCtl_LdrOpen: szName=%s cbImageWithEverything=%d\n", pReq->u.In.szName, pReq->u.In.cbImageWithEverything));
+ 
+     /*
+      * Check if we got an instance of the image already.
+@@ -5035,7 +5066,8 @@ static int supdrvIOCtl_LdrOpen(PSUPDRVDE
+         {
+             if (RT_LIKELY(pImage->cUsage < UINT32_MAX / 2U))
+             {
+-                /** @todo check cbImageBits and cbImageWithTabs here, if they differs that indicates that the images are different. */
++                /** @todo check cbImageBits and cbImageWithEverything here, if they differs
++                 *        that indicates that the images are different. */
+                 pImage->cUsage++;
+                 pReq->u.Out.pvImageBase   = pImage->pvImage;
+                 pReq->u.Out.fNeedsLoading = pImage->uState == SUP_IOCTL_LDR_OPEN;
+@@ -5078,13 +5110,19 @@ static int supdrvIOCtl_LdrOpen(PSUPDRVDE
+      */
+     pImage = (PSUPDRVLDRIMAGE)pv;
+     pImage->pvImage         = NULL;
++#ifdef SUPDRV_USE_MEMOBJ_FOR_LDR_IMAGE
++    pImage->hMemObjImage    = NIL_RTR0MEMOBJ;
++#else
+     pImage->pvImageAlloc    = NULL;
+-    pImage->cbImageWithTabs = pReq->u.In.cbImageWithTabs;
++#endif
++    pImage->cbImageWithEverything = pReq->u.In.cbImageWithEverything;
+     pImage->cbImageBits     = pReq->u.In.cbImageBits;
+     pImage->cSymbols        = 0;
+     pImage->paSymbols       = NULL;
+     pImage->pachStrTab      = NULL;
+     pImage->cbStrTab        = 0;
++    pImage->cSegments       = 0;
++    pImage->paSegments      = NULL;
+     pImage->pfnModuleInit   = NULL;
+     pImage->pfnModuleTerm   = NULL;
+     pImage->pfnServiceReqHandler = NULL;
+@@ -5102,10 +5140,19 @@ static int supdrvIOCtl_LdrOpen(PSUPDRVDE
+     rc = supdrvOSLdrOpen(pDevExt, pImage, pReq->u.In.szFilename);
+     if (rc == VERR_NOT_SUPPORTED)
+     {
++#ifdef SUPDRV_USE_MEMOBJ_FOR_LDR_IMAGE
++        rc = RTR0MemObjAllocPage(&pImage->hMemObjImage, pImage->cbImageBits, true /*fExecutable*/);
++        if (RT_SUCCESS(rc))
++        {
++            pImage->pvImage = RTR0MemObjAddress(pImage->hMemObjImage);
++            pImage->fNative = false;
++        }
++#else
+         pImage->pvImageAlloc = RTMemExecAlloc(pImage->cbImageBits + 31);
+         pImage->pvImage     = RT_ALIGN_P(pImage->pvImageAlloc, 32);
+         pImage->fNative     = false;
+         rc = pImage->pvImageAlloc ? VINF_SUCCESS : VERR_NO_EXEC_MEMORY;
++#endif
+         SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+     }
+     if (RT_FAILURE(rc))
+@@ -5138,41 +5185,90 @@ static int supdrvIOCtl_LdrOpen(PSUPDRVDE
+ 
+ 
+ /**
++ * Formats a load error message.
++ *
++ * @returns @a rc
++ * @param   rc                  Return code.
++ * @param   pReq                The request.
++ * @param   pszFormat           The error message format string.
++ * @param   ...                 Argument to the format string.
++ */
++int VBOXCALL supdrvLdrLoadError(int rc, PSUPLDRLOAD pReq, const char *pszFormat, ...)
++{
++    va_list va;
++    va_start(va, pszFormat);
++    pReq->u.Out.uErrorMagic = SUPLDRLOAD_ERROR_MAGIC;
++    RTStrPrintfV(pReq->u.Out.szError, sizeof(pReq->u.Out.szError), pszFormat, va);
++    va_end(va);
++    Log(("SUP_IOCTL_LDR_LOAD: %s [rc=%Rrc]\n", pReq->u.Out.szError, rc));
++    return rc;
++}
++
++
++/**
+  * Worker that validates a pointer to an image entrypoint.
+  *
++ * Calls supdrvLdrLoadError on error.
++ *
+  * @returns IPRT status code.
+  * @param   pDevExt         The device globals.
+  * @param   pImage          The loader image.
+  * @param   pv              The pointer into the image.
+  * @param   fMayBeNull      Whether it may be NULL.
+- * @param   fCheckNative    Whether to check with the native loaders.
+- * @param   pszSymbol       The entrypoint name or log name.  If the symbol
++ * @param   pszSymbol       The entrypoint name or log name.  If the symbol is
+  *                          capitalized it signifies a specific symbol, otherwise it
+  *                          for logging.
+  * @param   pbImageBits     The image bits prepared by ring-3.
++ * @param   pReq            The request for passing to supdrvLdrLoadError.
+  *
+- * @remarks Will leave the lock on failure.
++ * @note    Will leave the loader lock on failure!
+  */
+ static int supdrvLdrValidatePointer(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, void *pv, bool fMayBeNull,
+-                                    bool fCheckNative, const uint8_t *pbImageBits, const char *pszSymbol)
++                                    const uint8_t *pbImageBits, const char *pszSymbol, PSUPLDRLOAD pReq)
+ {
+     if (!fMayBeNull || pv)
+     {
+-        if ((uintptr_t)pv - (uintptr_t)pImage->pvImage >= pImage->cbImageBits)
++        uint32_t iSeg;
++
++        /* Must be within the image bits: */
++        uintptr_t const uRva = (uintptr_t)pv - (uintptr_t)pImage->pvImage;
++        if (uRva >= pImage->cbImageBits)
+         {
+             supdrvLdrUnlock(pDevExt);
+-            Log(("Out of range (%p LB %#x): %s=%p\n", pImage->pvImage, pImage->cbImageBits, pszSymbol, pv));
+-            return VERR_INVALID_PARAMETER;
++            return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq,
++                                      "Invalid entry point address %p given for %s: RVA %#zx, image size %#zx",
++                                      pv, pszSymbol, uRva, pImage->cbImageBits);
+         }
+ 
+-        if (pImage->fNative && fCheckNative)
++        /* Must be in an executable segment: */
++        for (iSeg = 0; iSeg < pImage->cSegments; iSeg++)
++            if (uRva - pImage->paSegments[iSeg].off < (uintptr_t)pImage->paSegments[iSeg].cb)
++            {
++                if (pImage->paSegments[iSeg].fProt & SUPLDR_PROT_EXEC)
++                    break;
++                supdrvLdrUnlock(pDevExt);
++                return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq,
++                                          "Bad entry point %p given for %s: not executable (seg #%u: %#RX32 LB %#RX32 prot %#x)",
++                                          pv, pszSymbol, iSeg, pImage->paSegments[iSeg].off, pImage->paSegments[iSeg].cb,
++                                          pImage->paSegments[iSeg].fProt);
++            }
++        if (iSeg >= pImage->cSegments)
+         {
++            supdrvLdrUnlock(pDevExt);
++            return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq,
++                                      "Bad entry point %p given for %s: no matching segment found (RVA %#zx)!",
++                                      pv, pszSymbol, uRva);
++        }
++
++        if (pImage->fNative)
++        {
++            /** @todo pass pReq along to the native code.   */
+             int rc = supdrvOSLdrValidatePointer(pDevExt, pImage, pv, pbImageBits, pszSymbol);
+             if (RT_FAILURE(rc))
+             {
+                 supdrvLdrUnlock(pDevExt);
+-                Log(("Bad entry point address: %s=%p (rc=%Rrc)\n", pszSymbol, pv, rc));
+-                return rc;
++                return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq,
++                                          "Bad entry point address %p for %s: rc=%Rrc\n", pv, pszSymbol, rc);
+             }
+         }
+     }
+@@ -5223,27 +5319,6 @@ int VBOXCALL supdrvLdrLoadError(int rc,
+ 
+ 
+ /**
+- * Formats a load error message.
+- *
+- * @returns @a rc
+- * @param   rc                  Return code.
+- * @param   pReq                The request.
+- * @param   pszFormat           The error message format string.
+- * @param   ...                 Argument to the format string.
+- */
+-int VBOXCALL supdrvLdrLoadError(int rc, PSUPLDRLOAD pReq, const char *pszFormat, ...)
+-{
+-    va_list va;
+-    va_start(va, pszFormat);
+-    pReq->u.Out.uErrorMagic = SUPLDRLOAD_ERROR_MAGIC;
+-    RTStrPrintfV(pReq->u.Out.szError, sizeof(pReq->u.Out.szError), pszFormat, va);
+-    va_end(va);
+-    Log(("SUP_IOCTL_LDR_LOAD: %s [rc=%Rrc]\n", pReq->u.Out.szError, rc));
+-    return rc;
+-}
+-
+-
+-/**
+  * Loads the image bits.
+  *
+  * This is the 2nd step of the loading.
+@@ -5259,7 +5334,7 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+     PSUPDRVLDRIMAGE pImage;
+     int             rc;
+     SUPDRV_CHECK_SMAP_SETUP();
+-    LogFlow(("supdrvIOCtl_LdrLoad: pvImageBase=%p cbImageWithBits=%d\n", pReq->u.In.pvImageBase, pReq->u.In.cbImageWithTabs));
++    LogFlow(("supdrvIOCtl_LdrLoad: pvImageBase=%p cbImageWithEverything=%d\n", pReq->u.In.pvImageBase, pReq->u.In.cbImageWithEverything));
+     SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+ 
+     /*
+@@ -5281,12 +5356,12 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+     /*
+      * Validate input.
+      */
+-    if (   pImage->cbImageWithTabs != pReq->u.In.cbImageWithTabs
+-        || pImage->cbImageBits     != pReq->u.In.cbImageBits)
++    if (   pImage->cbImageWithEverything != pReq->u.In.cbImageWithEverything
++        || pImage->cbImageBits           != pReq->u.In.cbImageBits)
+     {
+         supdrvLdrUnlock(pDevExt);
+-        return supdrvLdrLoadError(VERR_INVALID_HANDLE, pReq, "Image size mismatch found: %d(prep) != %d(load) or %d != %d",
+-                                  pImage->cbImageWithTabs, pReq->u.In.cbImageWithTabs, pImage->cbImageBits, pReq->u.In.cbImageBits);
++        return supdrvLdrLoadError(VERR_INVALID_HANDLE, pReq, "Image size mismatch found: %u(prep) != %u(load) or %u != %u",
++                                  pImage->cbImageWithEverything, pReq->u.In.cbImageWithEverything, pImage->cbImageBits, pReq->u.In.cbImageBits);
+     }
+ 
+     if (pImage->uState != SUP_IOCTL_LDR_OPEN)
+@@ -5306,35 +5381,56 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+         return supdrvLdrLoadError(VERR_PERMISSION_DENIED, pReq, "Loader is locked down");
+     }
+ 
++    /*
++     * Copy the segments before we start using supdrvLdrValidatePointer for entrypoint validation.
++     */
++    pImage->cSegments = pReq->u.In.cSegments;
++    {
++        size_t  cbSegments = pImage->cSegments * sizeof(SUPLDRSEG);
++        pImage->paSegments = (PSUPLDRSEG)RTMemDup(&pReq->u.In.abImage[pReq->u.In.offSegments], cbSegments);
++        if (pImage->paSegments) /* Align the last segment size to avoid upsetting RTR0MemObjProtect. */ /** @todo relax RTR0MemObjProtect */
++            pImage->paSegments[pImage->cSegments - 1].cb = RT_ALIGN_32(pImage->paSegments[pImage->cSegments - 1].cb, PAGE_SIZE);
++        else
++        {
++            supdrvLdrUnlock(pDevExt);
++            return supdrvLdrLoadError(VERR_NO_MEMORY, pReq, "Out of memory for segment table: %#x", cbSegments);
++        }
++        SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
++    }
++
++    /*
++     * Validate entrypoints.
++     */
+     switch (pReq->u.In.eEPType)
+     {
+         case SUPLDRLOADEP_NOTHING:
+             break;
+ 
+         case SUPLDRLOADEP_VMMR0:
+-            rc = supdrvLdrValidatePointer(    pDevExt, pImage, pReq->u.In.EP.VMMR0.pvVMMR0,          false, false, pReq->u.In.abImage, "pvVMMR0");
+-            if (RT_SUCCESS(rc))
+-                rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.EP.VMMR0.pvVMMR0EntryFast, false,  true, pReq->u.In.abImage, "VMMR0EntryFast");
+-            if (RT_SUCCESS(rc))
+-                rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.EP.VMMR0.pvVMMR0EntryEx,   false,  true, pReq->u.In.abImage, "VMMR0EntryEx");
++            if (pReq->u.In.EP.VMMR0.pvVMMR0 != pImage->pvImage)
++            {
++                supdrvLdrUnlock(pDevExt);
++                return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq, "Invalid pvVMMR0 pointer: %p, expected %p", pReq->u.In.EP.VMMR0.pvVMMR0, pImage->pvImage);
++            }
++            rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.EP.VMMR0.pvVMMR0EntryFast, false, pReq->u.In.abImage, "VMMR0EntryFast", pReq);
++            if (RT_FAILURE(rc))
++                return rc;
++            rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.EP.VMMR0.pvVMMR0EntryEx,   false, pReq->u.In.abImage, "VMMR0EntryEx", pReq);
+             if (RT_FAILURE(rc))
+-                return supdrvLdrLoadError(rc, pReq, "Invalid VMMR0 pointer");
++                return rc;
+             break;
+ 
+         case SUPLDRLOADEP_SERVICE:
+-            rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.EP.Service.pfnServiceReq, false,  true, pReq->u.In.abImage, "pfnServiceReq");
++            rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.EP.Service.pfnServiceReq, false, pReq->u.In.abImage, "pfnServiceReq", pReq);
+             if (RT_FAILURE(rc))
+-                return supdrvLdrLoadError(rc, pReq, "Invalid pfnServiceReq pointer: %p", pReq->u.In.EP.Service.pfnServiceReq);
++                return rc;
+             if (    pReq->u.In.EP.Service.apvReserved[0] != NIL_RTR0PTR
+                 ||  pReq->u.In.EP.Service.apvReserved[1] != NIL_RTR0PTR
+                 ||  pReq->u.In.EP.Service.apvReserved[2] != NIL_RTR0PTR)
+             {
+                 supdrvLdrUnlock(pDevExt);
+-                return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq,
+-                                          "Out of range (%p LB %#x): apvReserved={%p,%p,%p} MBZ!",
+-                                          pImage->pvImage, pReq->u.In.cbImageWithTabs,
+-                                          pReq->u.In.EP.Service.apvReserved[0],
+-                                          pReq->u.In.EP.Service.apvReserved[1],
++                return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq, "apvReserved={%p,%p,%p} MBZ!",
++                                          pReq->u.In.EP.Service.apvReserved[0], pReq->u.In.EP.Service.apvReserved[1],
+                                           pReq->u.In.EP.Service.apvReserved[2]);
+             }
+             break;
+@@ -5344,12 +5440,12 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+             return supdrvLdrLoadError(VERR_INVALID_PARAMETER, pReq, "Invalid eEPType=%d", pReq->u.In.eEPType);
+     }
+ 
+-    rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.pfnModuleInit, true, true, pReq->u.In.abImage, "ModuleInit");
++    rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.pfnModuleInit, true, pReq->u.In.abImage, "ModuleInit", pReq);
+     if (RT_FAILURE(rc))
+-        return supdrvLdrLoadError(rc, pReq, "Invalid pfnModuleInit pointer: %p", pReq->u.In.pfnModuleInit);
+-    rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.pfnModuleTerm, true, true, pReq->u.In.abImage, "ModuleTerm");
++        return rc;
++    rc = supdrvLdrValidatePointer(pDevExt, pImage, pReq->u.In.pfnModuleTerm, true, pReq->u.In.abImage, "ModuleTerm", pReq);
+     if (RT_FAILURE(rc))
+-        return supdrvLdrLoadError(rc, pReq, "Invalid pfnModuleTerm pointer: %p", pReq->u.In.pfnModuleTerm);
++        return rc;
+     SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+ 
+     /*
+@@ -5361,10 +5457,8 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+         pImage->cbStrTab = pReq->u.In.cbStrTab;
+         if (pImage->cbStrTab)
+         {
+-            pImage->pachStrTab = (char *)RTMemAlloc(pImage->cbStrTab);
+-            if (pImage->pachStrTab)
+-                memcpy(pImage->pachStrTab, &pReq->u.In.abImage[pReq->u.In.offStrTab], pImage->cbStrTab);
+-            else
++            pImage->pachStrTab = (char *)RTMemDup(&pReq->u.In.abImage[pReq->u.In.offStrTab], pImage->cbStrTab);
++            if (!pImage->pachStrTab)
+                 rc = supdrvLdrLoadError(VERR_NO_MEMORY, pReq, "Out of memory for string table: %#x", pImage->cbStrTab);
+             SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+         }
+@@ -5373,17 +5467,15 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+         if (RT_SUCCESS(rc) && pImage->cSymbols)
+         {
+             size_t  cbSymbols = pImage->cSymbols * sizeof(SUPLDRSYM);
+-            pImage->paSymbols = (PSUPLDRSYM)RTMemAlloc(cbSymbols);
+-            if (pImage->paSymbols)
+-                memcpy(pImage->paSymbols, &pReq->u.In.abImage[pReq->u.In.offSymbols], cbSymbols);
+-            else
++            pImage->paSymbols = (PSUPLDRSYM)RTMemDup(&pReq->u.In.abImage[pReq->u.In.offSymbols], cbSymbols);
++            if (!pImage->paSymbols)
+                 rc = supdrvLdrLoadError(VERR_NO_MEMORY, pReq, "Out of memory for symbol table: %#x", cbSymbols);
+             SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+         }
+     }
+ 
+     /*
+-     * Copy the bits / complete native loading.
++     * Copy the bits and apply permissions / complete native loading.
+      */
+     if (RT_SUCCESS(rc))
+     {
+@@ -5395,7 +5487,26 @@ static int supdrvIOCtl_LdrLoad(PSUPDRVDE
+             rc = supdrvOSLdrLoad(pDevExt, pImage, pReq->u.In.abImage, pReq);
+         else
+         {
++#ifdef SUPDRV_USE_MEMOBJ_FOR_LDR_IMAGE
++            uint32_t i;
+             memcpy(pImage->pvImage, &pReq->u.In.abImage[0], pImage->cbImageBits);
++
++            for (i = 0; i < pImage->cSegments; i++)
++            {
++                rc = RTR0MemObjProtect(pImage->hMemObjImage, pImage->paSegments[i].off, pImage->paSegments[i].cb,
++                                       pImage->paSegments[i].fProt);
++                if (RT_SUCCESS(rc))
++                    continue;
++                if (rc == VERR_NOT_SUPPORTED)
++                    rc = VINF_SUCCESS;
++                else
++                    rc = supdrvLdrLoadError(rc, pReq, "RTR0MemObjProtect failed on seg#%u %#RX32 LB %#RX32 fProt=%#x",
++                                            i, pImage->paSegments[i].off, pImage->paSegments[i].cb, pImage->paSegments[i].fProt);
++                break;
++            }
++#else
++            memcpy(pImage->pvImage, &pReq->u.In.abImage[0], pImage->cbImageBits);
++#endif
+             Log(("vboxdrv: Loaded '%s' at %p\n", pImage->szName, pImage->pvImage));
+         }
+         SUPDRV_CHECK_SMAP_CHECK(pDevExt, RT_NOTHING);
+@@ -5990,12 +6101,20 @@ static void supdrvLdrFree(PSUPDRVDEVEXT
+     pImage->pDevExt = NULL;
+     pImage->pNext   = NULL;
+     pImage->uState  = SUP_IOCTL_LDR_FREE;
++#ifdef SUPDRV_USE_MEMOBJ_FOR_LDR_IMAGE
++    RTR0MemObjFree(pImage->hMemObjImage, true /*fMappings*/);
++    pImage->hMemObjImage = NIL_RTR0MEMOBJ;
++#else
+     RTMemExecFree(pImage->pvImageAlloc, pImage->cbImageBits + 31);
+     pImage->pvImageAlloc = NULL;
++#endif
++    pImage->pvImage = NULL;
+     RTMemFree(pImage->pachStrTab);
+     pImage->pachStrTab = NULL;
+     RTMemFree(pImage->paSymbols);
+     pImage->paSymbols = NULL;
++    RTMemFree(pImage->paSegments);
++    pImage->paSegments = NULL;
+     RTMemFree(pImage);
+ }
+ 
+--- a/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
++++ b/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+@@ -176,6 +176,11 @@
+ # include <asm/set_memory.h>
+ #endif
+ 
++/* for __flush_tlb_all() */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
++# include <asm/tlbflush.h>
++#endif
++
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)
+ # include <asm/smap.h>
+ #else
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-5.8-4.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-5.8-4.patch
deleted file mode 100644
index cb4148f..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-5.8-4.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: Fix kernel 5.8 forbidding use of vermagic.h header file
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-Origin: https://www.virtualbox.org/ticket/19644
-Bug-Ubuntu: https://launchpad.net/bugs/1884652
-Last-Update: 2020-08-10
-
---- virtualbox-6.1.12-dfsg.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.c
-+++ virtualbox-6.1.12-dfsg/src/VBox/Additions/linux/sharedfolders/vfsmod.c
-@@ -53,7 +53,9 @@
- #include <linux/seq_file.h>
- #include <linux/vfs.h>
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 62)
--# include <linux/vermagic.h>
-+# if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
-+#  include <linux/vermagic.h>
-+# endif
- #endif
- #include <VBox/err.h>
- #include <iprt/path.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.12.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.12.bb
index e57df58..6c036d4 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.12.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.12.bb
@@ -12,10 +12,7 @@
 VBOX_NAME = "VirtualBox-${PV}"
 
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
-    file://0001-fixes_for_mm_struct.patch \
-    file://0002-fixes_for_module_memory.patch \
-    file://0003-fixes_for_changes_in_cpu_tlbstate.patch \
-    file://kernel-5.8-4.patch \
+    file://021-linux-5-8.patch \
     file://Makefile.utils \
 "
 SRC_URI[md5sum] = "3c351f7fd6376e0bb3c8489505a9450c"
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
index 20c7b2d..93b0d6a 100644
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
@@ -32,7 +32,7 @@
 PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
 PACKAGECONFIG[gnutls] = ",,gnutls"
 PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
-PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},,nss nspr"
+PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},--with-nss=no --with-nspr=no,nss nspr"
 PACKAGECONFIG[openssl] = ",,openssl"
 PACKAGECONFIG[des] = ",--disable-des,,"
 
diff --git a/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.5.1.bb b/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.5.1.bb
new file mode 100644
index 0000000..34dd8c8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.5.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Linux firmware validation framework" 
+DESCRIPTION = "Cukinia is designed to help Linux-based embedded firmware \
+developers run simple system-level validation tests on their firmware." 
+HOMEPAGE = "https://github.com/savoirfairelinux/cukinia"
+LICENSE = "GPLv3 & Apache-2.0"
+
+LIC_FILES_CHKSUM = "file://LICENSE.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+SRC_URI = "git://github.com/savoirfairelinux/cukinia.git;protocol=https;branch=master"
+
+SRCREV = "ea934c5393ad99c37bec3c621a364122720cce02"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+    install -d ${D}${sbindir}
+    install -m 0755 ${S}/cukinia ${D}${sbindir}
+}
diff --git a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-image.bb b/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-image.bb
index c10d20a..b8d3a76 100644
--- a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-image.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-image.bb
@@ -2,4 +2,4 @@
 
 SUMMARY = "meta-perl build test image"
 
-IMAGE_INSTALL += "packagegroup-meta-perl"
+IMAGE_INSTALL += "packagegroup-meta-perl packagegroup-meta-perl-extended"
diff --git a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb b/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
index 3b776f8..a9b4cc3 100644
--- a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
@@ -2,4 +2,8 @@
 
 SUMMARY = "meta-perl build ptest image"
 
+inherit features_check
+
+REQUIRED_DISTRO_FEATURES += "ptest"
+
 IMAGE_INSTALL += "packagegroup-meta-perl-ptest"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb b/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
index 6ab5a42..44c651c 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
@@ -23,7 +23,7 @@
 
 S = "${WORKDIR}/Data-HexDump-${PV}"
 
-inherit cpan ptest
+inherit cpan ptest update-alternatives
 
 do_install_ptest () {
     install -d ${D}${PTEST_PATH}/t
@@ -31,3 +31,8 @@
 }
 
 BBCLASSEXTEND = "native"
+
+ALTERNATIVES_PRIORITY = "100"
+ALTERNATIVE_${PN} = "hexdump"
+ALTERNATIVE_LINK_NAME[hexdump] = "${bindir}/hexdump"
+
diff --git a/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb b/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.66.bb
similarity index 90%
rename from meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb
rename to meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.66.bb
index 468add9..aef1d34 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.64.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.66.bb
@@ -14,8 +14,8 @@
            file://sqlite-perl-test.pl \
 "
 
-SRC_URI[md5sum] = "10796495b52927eb2e1df34c86924027"
-SRC_URI[sha256sum] = "f4ae8f7b50842305566aadd90f7bfd12a9e32b6c603a9b1c1529e73eb82aff01"
+SRC_URI[md5sum] = "38581209de5c981f0e79840c8937fa16"
+SRC_URI[sha256sum] = "89e75dff9f66c273e0e459d51f151f88960eb7d82e2821e6902f18688ba592fe"
 
 UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.06.bb b/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.07.bb
similarity index 95%
rename from meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.06.bb
rename to meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.07.bb
index 24bde21..4b0c1d8 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.06.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.07.bb
@@ -15,8 +15,8 @@
 LIC_FILES_CHKSUM = "file://META.json;beginline=8;endline=10;md5=b12e3be1e17a7e99ca4f429ff32c28b5"
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz"
-SRC_URI[md5sum] = "d2e51a37b4e1d5b16816604f02363637"
-SRC_URI[sha256sum] = "5b2dcd6861287880584e63b2e518840d483aa38da70194cf64d9957282851eea"
+SRC_URI[md5sum] = "a63fa96cbe236b2f7bb5a5e9fd740837"
+SRC_URI[sha256sum] = "34a4ec9b574b7a6c6132c4ab3ded490fd600bc7ce382124aeda58bb1e112910f"
 
 UPSTREAM_CHECK_REGEX = "Encode\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.25.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.26.bb
similarity index 92%
rename from meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.25.bb
rename to meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.26.bb
index bda6ec1..3b96077 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.25.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.26.bb
@@ -9,8 +9,8 @@
 
 SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "5c0d1a6de317993e146ce6d37c897be5"
-SRC_URI[sha256sum] = "10931927d32d771817f9cd7d5502794f245a86cb403310db33656e493f67ff25"
+SRC_URI[md5sum] = "6db2562b6c42619e9c7d7e62422af8c4"
+SRC_URI[sha256sum] = "eabaecd0fdb3e6adef8c9e016e8509319f19caa8c76836253f7db72bafe56498"
 
 UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb b/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
index 9b2406b..3fa56d4 100644
--- a/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
@@ -3,40 +3,87 @@
 inherit packagegroup
 
 PROVIDES = "${PACKAGES}"
-PACKAGES = ' \
+PACKAGES = "\
     packagegroup-meta-perl \
     packagegroup-meta-perl-extended \
-'
+    ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-perl-ptest-packages", "", d)} \
+"
 
 RDEPENDS_packagegroup-meta-perl = "\
-    libproc-waitstat-perl libmoo-perl libterm-readkey-perl \
-    libunicode-linebreak-perl libcurses-perl libmime-types-perl \
-    libmime-charset-perl libio-socket-ssl-perl libio-stringy-perl \
-    libtext-iconv-perl libtext-charwidth-perl libtext-diff-perl \
-    libtext-wrapi18n-perl liblocale-gettext-perl libdata-hexdump-perl \
-    libextutils-installpaths-perl libextutils-helpers-perl libextutils-parsexs-perl \
-    libextutils-config-perl libextutils-cppguess-perl libimport-into-perl \
-    libcrypt-openssl-rsa-perl libcrypt-openssl-guess-perl libcrypt-openssl-random-perl \
-    libxml-sax-writer-perl libxml-libxml-perl libxml-filter-buffertext-perl \
     adduser \
-    libauthen-sasl-perl libnet-ldap-perl libnet-dns-perl \
-    libnet-dns-sec-perl libnet-libidn-perl libnet-ssleay-perl \
-    libnet-telnet-perl libdevel-globaldestruction-perl libipc-signal-perl \
-    librole-tiny-perl libencode-perl libencode-locale-perl \
-    libfile-slurp-perl libcapture-tiny-perl \
+    libalgorithm-diff-perl \
+    libauthen-sasl-perl \
+    libauthen-radius-perl \
+    libcapture-tiny-perl \
+    libcgi-perl \
+    libdbd-sqlite-perl \
+    libclass-method-modifiers-perl \
+    libdigest-hmac-perl \
+    libdigest-sha1-perl \
+    libconfig-autoconf-perl \
+    libcrypt-openssl-guess-perl \
+    libcrypt-openssl-random-perl \
+    libcrypt-openssl-rsa-perl \
+    libhtml-parser-perl \
+    libhtml-tree-perl \
+    libhtml-tagset-perl \
+    libimport-into-perl \
+    libio-socket-ssl-perl \
+    libio-stringy-perl \
+    libipc-signal-perl \
+    libcurses-perl \
+    libmime-charset-perl \
+    libmime-types-perl \
+    libmodule-pluggable-perl \
+    libmodule-runtime-perl \
+    libmodule-build-tiny-perl \
+    libdata-hexdump-perl \
+    libnet-dns-perl \
+    libnet-libidn-perl \
+    libnet-dns-sec-perl \
+    libnet-ldap-perl \
+    libnet-ssleay-perl \
+    libnet-telnet-perl \
+    libproc-waitstat-perl \
+    libdevel-globaldestruction-perl \
+    libenv-perl \
+    libfile-slurp-perl \
+    libfile-slurper-perl \
+    libtext-iconv-perl \
+    libtext-diff-perl \
+    libtext-charwidth-perl \
+    libtext-wrapi18n-perl \
+    libxml-libxml-perl \
+    libxml-filter-buffertext-perl \
+    libxml-sax-writer-perl \
+    libextutils-config-perl \
+    libextutils-cppguess-perl \
+    libextutils-helpers-perl \
+    libextutils-installpaths-perl \
+    libextutils-parsexs-perl \
+    liblocale-gettext-perl \
+    libmoo-perl \
+    librole-tiny-perl \
+    libunix-statgrab \
+    libstrictures-perl \
+    libsub-exporter-progressive-perl \
+    libsub-uplevel-perl \
+    libterm-readkey-perl \
+    libtest-deep-perl \
+    libtest-harness-perl \
+    libtest-nowarnings-perl \
+    libtest-warn-perl \
+    libtest-warnings-perl \
+    libunicode-linebreak-perl \
     po4a \
-    libstrictures-perl libtest-harness-perl libsub-exporter-progressive-perl \
-    libclass-method-modifiers-perl libhtml-parser-perl libhtml-tree-perl \
-    libmodule-pluggable-perl libmodule-build-perl libmodule-runtime-perl \
-    libmodule-build-tiny-perl libcgi-perl libalgorithm-diff-perl \
-    libdbd-sqlite-perl libdigest-sha1-perl libdigest-hmac-perl \
-    " 
+"
 
 RDEPENDS_packagegroup-meta-perl-extended = "\
-    logcheck mime-construct \
-    "
+    logcheck \
+    mime-construct \
+"
 
-RDEPENDS_packagegroup-meta-perl-ptest = "\
+RDEPENDS_packagegroup-meta-perl-ptest-packages = "\
     libmime-types-perl-ptest \
     libio-socket-ssl-perl-ptest \
     libdata-hexdump-perl-ptest \
@@ -47,6 +94,9 @@
     libtest-harness-perl-ptest \
     libdigest-sha1-perl-ptest \
     libdigest-hmac-perl-ptest \
-    "
+"
 
 EXCLUDE_FROM_WORLD = "1"
+
+# perl-module-encode is preferred over libencode-perl
+# libencode-locale-perl depends on libencode-perl
diff --git a/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb b/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
index 5db5b8f..1b3aca5 100644
--- a/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
@@ -6,7 +6,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=a96fc9b4cc36d80659e694ea109f0325"
 
-SRC_URI = "git://alioth.debian.org/anonscm/git/po4a/po4a.git;protocol=https"
+SRC_URI = "git://github.com/mquinson/po4a.git;protocol=https"
 
 # v0.49
 SRCREV = "79ed87a577a543538fe39c7b60079981f5997072"
diff --git a/meta-openembedded/meta-python/licenses/WTFPL b/meta-openembedded/meta-python/licenses/WTFPL
new file mode 100644
index 0000000..5a8e332
--- /dev/null
+++ b/meta-openembedded/meta-python/licenses/WTFPL
@@ -0,0 +1,14 @@
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+                    Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc b/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc
deleted file mode 100644
index 11971dc..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A simple connection pool for gevent"
-DESCRIPTION = "creates a pool of connections that can be used with gevent"
-HOMEPAGE = "https://github.com/studio-ousia/gsocketpool"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
-DEPENDS += "${PYTHON_PN}-gevent"
-RDEPENDS_${PN} += "${PYTHON_PN}-gevent"
-
-SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550"
-SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14"
-
-inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb b/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb
index 883621e..d3e7d48 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb
@@ -1,2 +1,12 @@
-require python-gsocketpool.inc
-inherit setuptools3
+SUMMARY = "A simple connection pool for gevent"
+DESCRIPTION = "creates a pool of connections that can be used with gevent"
+HOMEPAGE = "https://github.com/studio-ousia/gsocketpool"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
+DEPENDS += "${PYTHON_PN}-gevent"
+RDEPENDS_${PN} += "${PYTHON_PN}-gevent"
+
+SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550"
+SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc
deleted file mode 100644
index eccfa8c..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python-hpack.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "Pure-Python HPACK header compression"
-HOMEPAGE = "https://github.com/python-hyper/hpack"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
-
-SRC_URI[md5sum] = "556b0ae66180f54c2ce8029a0952088b"
-SRC_URI[sha256sum] = "8eec9c1f4bfae3408a3f30500261f7e6a65912dc138526ea054f9ad98892e9d2"
-
-inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb
deleted file mode 100644
index e196c55..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_3.0.0.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require python-hpack.inc
-
-inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb
new file mode 100644
index 0000000..afba98e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Pure-Python HPACK header compression"
+HOMEPAGE = "https://github.com/python-hyper/hpack"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
+
+SRC_URI[md5sum] = "27e01514ef06dc9fa0798d3dcb7de47c"
+SRC_URI[sha256sum] = "fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc
deleted file mode 100644
index 0066bf8..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python-hyperframe.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "HTTP/2 framing layer for Python"
-HOMEPAGE = "https://github.com/python-hyper/hyperframe"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
-
-SRC_URI[md5sum] = "6919183242feb26d8bce3b4cba81defd"
-SRC_URI[sha256sum] = "a9f5c17f2cc3c719b917c4f33ed1c61bd1f8dfac4b1bd23b7c80b3400971b41f"
-
-inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb
deleted file mode 100644
index f10fb6d..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_5.2.0.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require python-hyperframe.inc
-
-inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.0.bb
new file mode 100644
index 0000000..4a936b4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.0.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "HTTP/2 framing layer for Python"
+HOMEPAGE = "https://github.com/python-hyper/hyperframe"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
+
+SRC_URI[md5sum] = "30136a712e092b1a45ae3cad3ae93131"
+SRC_URI[sha256sum] = "742d2a4bc3152a340a49d59f32e33ec420aa8e7054c1444ef5c7efff255842f1"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
deleted file mode 100644
index e9eebe8..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A gevent based messagpack rpc library"
-DESCRIPTION = "mprpc is a fast implementation of the messagepack rpc protocol for python. \
-It is based on gevent for handling connections and enabling concurrent connections."
-HOMEPAGE = "https://github.com/studio-ousia/mprpc"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
-DEPENDS += "${PYTHON_PN}-gevent"
-RDEPENDS_${PN} += "${PYTHON_PN}-gevent ${PYTHON_PN}-msgpack ${PYTHON_PN}-gsocketpool"
-
-SRC_URI[md5sum] = "8d97961051422f3de315613434982d3b"
-SRC_URI[sha256sum] = "3589fd127482e291b1ec314d6f0e55cc13311c12932ace356d6178ea1ca28f6a"
-
-inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.17.bb b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.17.bb
index 837d604..14eef96 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.17.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.17.bb
@@ -1,2 +1,13 @@
-require python-mprpc.inc
-inherit setuptools3
+SUMMARY = "A gevent based messagpack rpc library"
+DESCRIPTION = "mprpc is a fast implementation of the messagepack rpc protocol for python. \
+It is based on gevent for handling connections and enabling concurrent connections."
+HOMEPAGE = "https://github.com/studio-ousia/mprpc"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
+DEPENDS += "${PYTHON_PN}-gevent"
+RDEPENDS_${PN} += "${PYTHON_PN}-gevent ${PYTHON_PN}-msgpack ${PYTHON_PN}-gsocketpool"
+
+SRC_URI[md5sum] = "8d97961051422f3de315613434982d3b"
+SRC_URI[sha256sum] = "3589fd127482e291b1ec314d6f0e55cc13311c12932ace356d6178ea1ca28f6a"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc
deleted file mode 100644
index aa93819..0000000
--- a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python-priority.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "A pure-Python implementation of the HTTP/2 priority tree"
-HOMEPAGE = "https://github.com/python-hyper/priority"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae57d8a09fc8b6b164d7357339619045"
-
-SRC_URI[md5sum] = "4f1ff52f7fa448e9d9cb46337ae86d1e"
-SRC_URI[sha256sum] = "6bc1961a6d7fcacbfc337769f1a382c8e746566aaa365e78047abe9f66b2ffbe"
-
-inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb
index fe756b5..5d84571 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-priority/python3-priority_1.3.0.bb
@@ -1,3 +1,10 @@
-require python-priority.inc
+DESCRIPTION = "A pure-Python implementation of the HTTP/2 priority tree"
+HOMEPAGE = "https://github.com/python-hyper/priority"
+LICENSE = "MIT"
 
-inherit setuptools3
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae57d8a09fc8b6b164d7357339619045"
+
+SRC_URI[md5sum] = "4f1ff52f7fa448e9d9cb46337ae86d1e"
+SRC_URI[sha256sum] = "6bc1961a6d7fcacbfc337769f1a382c8e746566aaa365e78047abe9f66b2ffbe"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb
index cc75fe6..6353d38 100644
--- a/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb
@@ -2,5 +2,4 @@
 
 SUMMARY = "meta-python build test image"
 
-IMAGE_INSTALL += "packagegroup-meta-python \
-                  packagegroup-meta-python3"
+IMAGE_INSTALL += "packagegroup-meta-python3"
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
index 7ee1535..d497016 100644
--- a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
@@ -2,4 +2,4 @@
 
 SUMMARY = "meta-python ptest test image"
 
-IMAGE_INSTALL += "packagegroup-meta-python-ptest"
+IMAGE_INSTALL += "packagegroup-meta-python3-ptest"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index c03f610..61623ac 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -1,4 +1,4 @@
-SUMMARY = "Meta-oe ptest packagegroups"
+SUMMARY = "Meta-python ptest packagegroups"
 
 inherit packagegroup
 
@@ -13,62 +13,447 @@
 "
 
 RDEPENDS_packagegroup-meta-python3 = "\
-    python3-pyserial python3-gevent python3-alembic python3-robotframework-seriallibrary \
-    python3-rfc3987 python3-xlrd python3-bandit python3-constantly python3-inflection \
-    python3-javaobj-py3 python3-sh python3-pycrypto python3-pyasn1 python3-pydbus python3-wtforms \
-    python3-pybluez python3-babel python3-parse-type python3-bitarray python3-django-south \
-    python3-pyusb python3-prctl python3-jinja2 python3-werkzeug python3-pyjks python3-requests-ftp \
-    python3-behave python3-pyyaml python3-tzlocal python3-pretend python3-stevedore \
-    python3-sijax python3-langtable python3-requests-file python3-crcmod python3-robotframework \
-    python3-pint python3-coverage python3-iso8601 python3-ndg-httpsclient python3-yappi python3-twofish \
-    python3-speaklater python3-smbus python3-djangorestframework python3-msgpack python3-jsonpointer \
-    python3-flask-script python3-cassandra-driver python3-ujson python3-aws-iot-device-sdk-python \
-    python3-pytest-runner python3-pyiface python3-flask-login python3-markupsafe python3-setuptools-scm \
-    python3-semver python3-sdnotify python3-flask-user python3-tornado python3-jsonpatch python3-pexpect \
-    python3-progress python3-jsonschema python3-xstatic python3-pyroute2 python3-idna python3-sqlalchemy \
-    python3-urllib3 python3-flask-mail python3-asn1crypto python3-pyinotify python3-intervals python3-pyperclip \
-    python3-flask-bootstrap python3-pyudev python3-decorator python3-pybind11 python3-pluggy python3-redis \
-    python3-pycryptodome python3-passlib python3-dominate python3-ply python3-ntplib python3-serpent python3-wrapt \
-    python3-attrs python3-appdirs python3-isort python3-evdev python3-incremental python3-click python3-flask-nav \
-    python3-webcolors python3-dateutil python3-blinker python3-hyperlink python3-lxml python3-pylint \
-    python3-flask-migrate python3-pytest-tempdir python3-flask-restful python3-feedformatter \
-    python3-pyasn1-modules python3-scapy python3-html5lib python3-dnspython python3-automat \
-    python3-itsdangerous python3-pandas python3-pyfirmata python3-protobuf  \
-    python3-flask-babel python3-anyjson python3-flask-xstatic python3-multidict python3-prompt-toolkit \
-    python3-periphery python3-greenlet python3-pytz python3-pyexpect python3-zopeinterface \
-    python3-bcrypt python3-xstatic-font-awesome python3-m2crypto python3-parse python3-attr \
-    python3-beautifulsoup4 python3-pycodestyle python3-oauthlib python3-grpcio python3-scrypt \
-    python3-pyjwt python3-astroid python3-flask-pymongo python3-wcwidth python3-lazy-object-proxy \
-    python3-websockets python3-pyzmq python3-pytest python3-chardet python3-vcversioner python3-whoosh \
-    python3-pymisp python3-certifi python3-psutil python3-flask-sqlalchemy python3-humanize \
-    python3-grpcio-tools python3-configparser python3-strict-rfc3339 python3-paho-mqtt \
-    python3-pytest-helpers-namespace python3-flask python3-flask-wtf python3-visitor python3-pynetlinux \
-    python3-requests python3-cryptography-vectors python3-spidev python3-pid python3-pymongo \
-    python3-future python3-django python3-unidiff python3-webencodings python3-can python3-pyalsaaudio \
-    python3-flask-sijax python3-cryptography python3-twisted python3-netaddr python3-pycparser \
-    python3-flask-uploads python3-pysocks python3-cffi python3-editor python3-ptyprocess \
-    python3-pyopenssl python3-ordered-set python3-simplejson python3-py \
+    pamela \
+    pyrtm \
     ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-systemd", "", d)} \
+    python3-bcrypt \
+    python3-flask-mail \
+    python3-editor \
+    python3-flask-pymongo \
+    python3-cffi \
+    python3-pillow \
+    python3-markupsafe \
+    python3-flask-nav \
+    python3-asciitree \
+    python3-flask-sqlalchemy \
+    python3-gevent \
+    python3-attrs \
+    python3-aenum \
+    python3-gast \
+    python3-blinker \
+    python3-prettytable \
+    python3-cmd2 \
+    python3-aiofiles \
+    python3-anyjson \
+    python3-isodate \
+    python3-incremental \
+    python3-aiohttp-jinja2 \
+    python3-aiohttp \
+    python3-alembic \
+    python3-ansi2html \
+    python3-ansicolors \
+    python3-argexec \
+    python3-appdirs \
+    python3-apply-defaults \
+    python3-argh \
+    python3-ply \
+    python3-astroid \
+    python3-ndg-httpsclient \
+    python3-arpeggio \
+    python3-astor \
+    python3-pika \
+    python3-asn1crypto \
+    python3-async-timeout \
+    python3-absl \
+    python3-atomicwrites \
+    python3-attr \
+    python3-flask \
+    python3-autobahn \
+    python3-babel \
+    python3-pretend \
+    python3-automat \
+    python3-ptyprocess \
+    python3-aws-iot-device-sdk-python \
+    python3-bandit \
+    python3-backcall \
+    python3-backports-functools-lru-cache \
+    python3-beautifulsoup4 \
+    python3-betamax \
+    python3-behave \
+    python3-jsonpointer \
+    python3-bitarray \
+    python3-bitstring \
+    python3-bitstruct \
+    python3-cachecontrol \
+    python3-booleanpy \
+    python3-cachetools \
+    python3-can \
+    python3-cantools \
+    python3-cassandra-driver \
+    python3-cbor2 \
+    python3-chardet \
+    python3-certifi \
+    python3-isort \
+    python3-colorama \
+    python3-cheetah \
+    python3-click \
+    python3-huey \
+    python3-coloredlogs \
+    python3-colorlog \
+    python3-wheel \
+    python3-configshell-fb \
+    python3-constantly \
+    python3-contextlib2 \
+    python3-configargparse \
+    python3-crcmod \
+    python3-configobj \
+    python3-configparser \
+    python3-cppy \
+    python3-dbussy \
+    python3-dateutil \
+    python3-distro \
+    python3-click-repl \
+    python3-redis \
+    python3-dominate \
+    python3-et-xmlfile \
+    python3-feedformatter \
+    python3-flask-jsonpify \
+    python3-flask-jwt \
+    python3-flask-migrate \
+    python3-pyinotify \
+    python3-flask-restful \
+    python3-flask-socketio \
+    python3-gmqtt \
+    python3-dateparser \
+    python3-defusedxml \
+    python3-rsa \
+    python3-django-south \
+    python3-grpcio \
+    python3-pybind11-json \
+    python3-google-api-python-client \
+    python3-h5py \
+    python3-dt-schema \
+    python3-haversine \
+    python3-fasteners \
+    python3-flask-bootstrap \
+    python3-dbus-next \
+    python3-dnspython \
+    python3-traitlets \
+    python3-pybind11 \
+    python3-flask-script \
+    python3-flask-sijax \
+    python3-html2text \
+    python3-html5lib \
+    python3-intervals \
+    python3-ipy \
+    python3-ipaddress \
+    python3-iso8601 \
+    python3-humanfriendly \
+    python3-lrparsing \
+    python3-itsdangerous \
+    python3-hyperlink \
+    python3-idna-ssl \
+    python3-jdcal \
+    python3-greenstalk \
+    python3-icu \
+    python3-jsonschema \
+    python3-keras-applications \
+    python3-idna \
+    python3-sympy \
+    python3-importlib-metadata \
+    python3-langtable \
+    python3-lockfile \
+    python3-nmap \
+    python3-jdatetime \
+    python3-monotonic \
+    python3-mpmath \
+    python3-jedi \
+    python3-jsonpatch \
+    python3-jsonrpcserver \
+    python3-libconf \
+    python3-netifaces \
+    python3-msm \
+    python3-nocaselist \
+    python3-keras-preprocessing \
+    python3-flask-babel \
+    python3-lorem \
+    python3-javaobj-py3 \
+    python3-passlib \
+    python3-pathlib2 \
+    python3-pexpect \
+    python3-luma-oled \
+    python3-pluggy \
+    python3-lxml \
+    python3-precise-runner \
+    python3-padaos \
+    python3-progress \
+    python3-sqlalchemy \
+    python3-sh \
+    python3-petact \
+    python3-mock \
+    python3-msgpack \
+    python3-pyasn1 \
+    python3-msk \
+    python3-openpyxl \
+    python3-prctl \
+    python3-pyatspi \
+    python3-multidict \
+    python3-netaddr \
+    python3-parse \
+    python3-oauthlib \
+    python3-pyfirmata \
+    python3-pandas \
+    python3-padatious \
+    python3-prompt-toolkit \
+    python3-parse-type \
+    python3-cycler \
+    python3-decorator \
+    python3-django \
+    python3-croniter \
+    python3-flask-user \
+    python3-twitter \
+    python3-evdev \
+    python3-dynamic-dispatch \
+    python3-click-spinner \
+    python3-future \
+    python3-geojson \
+    python3-gunicorn \
+    python3-engineio \
+    python3-gmpy2 \
+    python3-coverage \
+    python3-fastnumbers \
+    python3-fann2 \
+    python3-gnupg \
+    python3-flask-login \
+    python3-pyzmq \
+    python3-cryptography-vectors \
+    python3-flask-uploads \
+    python3-ecdsa \
+    python3-networkx \
+    python3-flask-xstatic \
+    python3-pint \
+    python3-iso3166 \
+    python3-imageio \
+    python3-mccabe \
+    python3-kconfiglib \
+    python3-grpcio-tools \
+    python3-jinja2 \
+    python3-jsmin \
+    python3-greenlet \
+    python3-idna \
+    python3-flask-versioned \
+    python3-httplib2 \
+    python3-ipython-genutils \
+    python3-kiwisolver \
+    python3-lz4 \
+    python3-obd \
+    python3-markdown \
+    python3-m2crypto \
+    python3-paho-mqtt \
+    python3-graphviz \
+    python3-pyaudio \
+    python3-pako \
+    python3-meld3 \
+    python3-parallax \
+    python3-lazy-object-proxy \
+    python3-license-expression \
+    python3-luma-core \
+    python3-natsort \
+    python3-polyline \
+    python3-ordered-set \
+    python3-packaging \
+    python3-parso \
+    python3-pycparser \
+    python3-pycrypto \
+    python3-pydbus \
+    python3-pathtools3 \
+    python3-periphery \
+    python3-pyiface \
+    python3-pyjwt \
+    python3-pykwalify \
+    python3-pylint \
+    python3-pynetlinux \
+    python3-pickleshare \
+    python3-pyopenssl \
+    python3-protobuf \
+    python3-py \
+    python3-pyasn1-modules \
+    python3-pyscaffold \
+    python3-pyserial \
+    python3-pysocks \
+    python3-pytoml \
+    python3-pytest-helpers-namespace \
+    python3-more-itertools \
+    python3-pytest-tempdir \
+    python3-pyflakes \
+    python3-pyrad \
+    python3-pyusb \
+    python3-pyhamcrest \
+    python3-custom-inherit \
+    python3-pymysql \
+    python3-pyperclip \
+    python3-rfc3339-validator \
+    python3-pytz \
+    python3-scrypt \
+    python3-rdflib \
+    python3-sijax \
+    python3-regex \
+    python3-slip-dbus \
+    python3-smbus2 \
+    python3-pytest-metadata \
+    python3-term \
+    python3-pystache \
+    python3-pep8 \
+    python3-pytest-runner \
+    python3-pybluez \
+    python3-rfc3986-validator \
+    python3-pocketsphinx \
+    python3-sdnotify \
+    python3-pycodestyle \
+    python3-pytest \
+    python3-speaklater \
+    python3-wtforms \
+    python3-speedtest-cli \
+    python3-pyudev \
+    python3-sqlparse \
+    python3-pyexpect \
+    python3-pytest-html \
+    python3-uritemplate \
+    python3-cryptography \
+    python3-requests \
+    python3-test-generator \
+    python3-whoosh \
+    python3-xstatic-font-awesome \
+    python3-tqdm \
+    python3-vcversioner \
+    python3-semver \
+    python3-serpent \
+    python3-spidev \
+    python3-sqlsoup \
+    python3-tornado \
+    python3-trafaret \
+    python3-urllib3 \
+    python3-yappi \
+    python3-zipp \
+    python3-texttable \
+    python3-humanize \
+    python3-strict-rfc3339 \
+    python3-supervisor \
+    python3-toml \
+    python3-diskcache \
+    python3-requests-futures \
+    python3-matplotlib \
+    python3-sentry-sdk \
+    python3-xlrd \
+    python3-xstatic \
+    python3-tzlocal \
+    python3-wcwidth \
+    python3-ntplib \
+    python3-u-msgpack-python \
+    python3-python-vlc \
+    python3-xlsxwriter \
+    python3-inflection \
+    python3-tabulate \
+    python3-typing-extensions \
+    python3-pystemd \
+    python3-pid \
+    python3-pkgconfig \
+    python3-pylyrics \
+    python3-pyyaml \
+    python3-raven \
+    python3-stevedore \
+    python3-requests-oauthlib \
+    python3-rfc3987 \
+    python3-psutil \
+    python3-robotframework-seriallibrary \
+    python3-pulsectl \
+    python3-py-ubjson \
+    python3-pyalsaaudio \
+    python3-simpleeval \
+    python3-smbus \
+    python3-pychromecast \
+    python3-pyjks \
+    python3-pymongo \
+    python3-spidev \
+    python3-pynacl \
+    python3-termcolor \
+    python3-pyperf \
+    python3-qrcode \
+    python3-visitor \
+    python3-pyroute2 \
+    python3-webencodings \
+    python3-pyrsistent \
+    python3-werkzeug \
+    python3-pydicti \
+    python3-xmlrunner \
+    python3-smpplib \
+    python3-pymisp \
+    python3-requests-file \
+    python3-requests-toolbelt \
+    python3-ruamel-yaml \
+    python3-setuptools-scm \
+    python3-socketio \
+    python3-soupsieve \
+    python3-textparser \
+    python3-tinyrecord \
+    python3-twine \
+    python3-unidiff \
+    python3-watchdog \
+    python3-webcolors \
+    python3-robotframework \
+    python3-xxhash \
+    python3-yarl \
+    python3-zopeinterface \
+    python3-requests-ftp \
+    python3-scapy \
+    python3-paramiko \
+    python3-twofish \
+    python3-simplejson \
+    python3-snappy \
+    python3-versiontools \
+    python3-flask-wtf \
+    python3-websockets \
+    python3-werkzeug \
+    python3-wrapt \
+    python3-xmltodict \
+    python3-trafaret-config \
+    python3-twisted \
+    python3-txaio \
+    python3-typeguard \
+    python3-pytest-timeout \
+    python3-ujson \
+    python3-waitress \
+    python3-websocket-client \
+    python3-xmodem \
+    python3-djangorestframework \
+    python3-pytest-asyncio \
+    python3-nocasedict \
+    python3-yamlloader \
+    python3-ipython \
+    python3-pycurl \
+    gyp \
+    python3-jsonref \
 "
 
 RDEPENDS_packagegroup-meta-python3-extended = "\
-    python3-pykickstart \
-    python3-meh \
     python3-blivet \
-    python3-pywbem \
-    python3-pyparted \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "python3-blivetgui", "", d)} \
+    python3-cson \
+    python3-meh \
+    python3-pyephem \
+    python3-pykickstart \
+    python3-pyparted \
+    python3-pywbem \
+    python3-pywbemtools \
 "
 
 RDEPENDS_packagegroup-meta-python3-connectivity = "\
-    python3-pytun \
-    python3-mprpc \
-    python3-pyconnman \
     python3-gsocketpool \
+    python3-h2 \
+    python3-hpack \
+    python3-hyperframe \
+    python3-mprpc \
+    python3-priority \
+    python3-pyconnman \
+    python3-pyro4 \
+    python3-thrift \
+    python3-txws \
+    python3-pytun \
+    telepathy-python3 \
 "
 
 RDEPENDS_packagegroup-meta-python3-ptest = "\
-    python3-cryptography \
+    python3-cryptography-ptest \
     "
 
 EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc
deleted file mode 100644
index 98ed42c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
-HOMEPAGE = "https://gyp.gsrc.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
-SECTION = "devel"
-
-SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https"
-SRCREV = "fcd686f1880fa52a1ee78d3e98af1b88cb334528"
-
-S = "${WORKDIR}/git"
-PV = "0.1+git${SRCPV}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
index 8e48a27..d668d1c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -1,2 +1,15 @@
+DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
+HOMEPAGE = "https://gyp.gsrc.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
+SECTION = "devel"
+
+SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https"
+SRCREV = "caa60026e223fc501e8b337fd5086ece4028b1c6"
+
+S = "${WORKDIR}/git"
+PV = "0.1+git${SRCPV}"
+
 inherit setuptools3
-require gyp.inc
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc
deleted file mode 100644
index c415b35..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-fann2.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Python bindings for Fast Artificial Neural Networks 2.2.0 (FANN >= 2.2.0)"
-SECTION = "devel/python"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f"
-
-SRC_URI[md5sum] = "0b85b418018746d63ed66b55465697a9"
-SRC_URI[sha256sum] = "cdca0a65ad48e08320672affe38c3dd4ea15e27821e5e1db9fa2b34299bdd41e"
-
-DEPENDS += "swig-native libfann"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc
deleted file mode 100644
index 0df276d..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-mail.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Flask extension for sending email"
-DESCRIPTION = "A Flask extension for sending email"
-HOMEPAGE = " https://github.com/rduplain/flask-email"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5b16dfa6d3f275ace5985bb92949f770"
-
-SRC_URI[md5sum] = "04b35a42a44ec7aa724ec8ce55e2e08e"
-SRC_URI[sha256sum] = "22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41"
-
-PYPI_PACKAGE = "Flask-Mail"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-nav.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-nav.inc
deleted file mode 100644
index 932ccdf..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-nav.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Easily create navigation for Flask applications."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=2729ee82259d601d90d28b0574d12416"
-
-SRC_URI[md5sum] = "4d51cfd06d58f8d0fe85775a6696c0e5"
-SRC_URI[sha256sum] = "44e40b755380a1e68ab521a2f9174de259a2c94ddcdaabf36b3aca2e110a33f4"
-
-PYPI_PACKAGE = "flask-nav"
-
-RDEPENDS_${PN} += "\
-    ${PYTHON_PN}-blinker \
-    ${PYTHON_PN}-flask \
-    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
deleted file mode 100644
index 5fc35c1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "PyMongo support for Flask applications"
-DESCRIPTION = "PyMongo support for Flask applications."
-HOMEPAGE = "https://github.com/mitsuhiko/flask/"
-SECTION = "devel/python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;beginline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d"
-
-SRC_URI[md5sum] = "94df71e6800b1d7915cc91a74b70f959"
-SRC_URI[sha256sum] = "620eb02dc8808a5fcb90f26cab6cba9d6bf497b15032ae3ca99df80366e33314"
-
-PYPI_PACKAGE = "Flask-PyMongo"
-
-DEPENDS = "${PYTHON_PN}-vcversioner ${PYTHON_PN}-vcversioner-native"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc
deleted file mode 100644
index adef32c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-user.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Customizable user account management for Flask"
-DESCRIPTION = "Customizable User Account Management for Flask; Register \
-Confirm email, Login, Change username, Change password, Forgot Password \
-and more."
-HOMEPAGE = " https://github.com/lingthio/Flask-User"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=97de97cd9d6e23c88129d884588ce71a"
-
-SRC_URI[md5sum] = "f7965e66ca139c8436896da07e66c21f"
-SRC_URI[sha256sum] = "601abcc0343dfbae0c56273d98362d5cdc266ac84d20b3f65a212e4a2c83b302"
-
-PYPI_PACKAGE = "Flask-User"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-flask \
-    ${PYTHON_PN}-flask-login \
-    ${PYTHON_PN}-flask-mail \
-    ${PYTHON_PN}-babel"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/0002-setup.py-do-not-query-for-include-dir.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/0002-setup.py-do-not-query-for-include-dir.patch
deleted file mode 100644
index 7536b71..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/0002-setup.py-do-not-query-for-include-dir.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a53ed6b2f967a5f95e69d51cad3f8c120d7df65b Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 7 Feb 2019 15:21:15 +0100
-Subject: [PATCH] setup.py: do not query for include dir
-
-As this will return the native python directory erroneously.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 86d6c5a..5d22291 100755
---- a/setup.py
-+++ b/setup.py
-@@ -52,7 +52,7 @@ from _setupares import ARES
- # Get access to the greenlet header file.
- # The sysconfig dir is not enough if we're in a virtualenv
- # See https://github.com/pypa/pip/issues/4610
--include_dirs = [sysconfig.get_path("include")]
-+include_dirs = []
- venv_include_dir = os.path.join(sys.prefix, 'include', 'site',
-                                 'python' + sysconfig.get_python_version())
- venv_include_dir = os.path.abspath(venv_include_dir)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc
deleted file mode 100644
index b14f825..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-systemd.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Python interface for libsystemd"
-HOMEPAGE = "https://github.com/systemd/python-systemd"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c"
-
-PYPI_PACKAGE = "systemd-python"
-DEPENDS += "systemd (<=234)"
-RDEPENDS_${PN} += "systemd ${PYTHON_PN}-syslog ${PYTHON_PN}-logging"
-REQUIRED_DISTRO_FEATURES = "systemd"
-inherit pypi features_check
-
-SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d"
-SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7"
-
-# allow for common patches for python- and python3-systemd
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-systemd:"
-
-SRC_URI += "file://endian.patch"
-
-SRC_URI_append_libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.10.0.bb
new file mode 100644
index 0000000..5be00cc
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.10.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Abseil Python Common Libraries"
+HOMEPAGE = "https://github.com/abseil/abseil-py"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "9cb38ddf7a2f000e2c92e5d9dfa36ffa"
+SRC_URI[sha256sum] = "b20f504a7871a580be5268a18fbad48af4203df5d33dbc9272426cb806245a45"
+
+PYPI_PACKAGE = "absl-py"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.9.0.bb
deleted file mode 100644
index a8f47ba..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.9.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Abseil Python Common Libraries"
-HOMEPAGE = "https://github.com/abseil/abseil-py"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "git://github.com/abseil/abseil-py.git"
-SRCREV ?= "06edd9c20592cec39178b94240b5e86f32e19768"
-
-inherit setuptools3
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.4.3.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.4.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.4.3.bb
index 2263060..0e7f629 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.4.3.bb
@@ -4,8 +4,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "1d67bdbd3abd33f0319afcd29bc59686"
-SRC_URI[sha256sum] = "035ab00497217628bf5d0be82d664d8713ab13d37b630084da8e1f98facf4dbf"
+SRC_URI[md5sum] = "6051576d8e25e3d4a9fd818d79531bad"
+SRC_URI[sha256sum] = "5334f32314fb2a56d86b4c4dd1ae34b08c03cae4cb888bc699942104d66bc245"
 
 PYPI_PACKAGE = "alembic"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb
new file mode 100644
index 0000000..833732b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Draws ASCII trees."
+HOMEPAGE = "http://github.com/mbr/asciitree"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a985ccb0df374f2a8cab75010bf8db73"
+
+SRC_URI[md5sum] = "2570b31e563b69da1aff54509db8ac6a"
+SRC_URI[sha256sum] = "4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_20.2.0.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_20.2.0.bb
index 7ff8049..c2a5b90 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_19.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-attrs_20.2.0.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
 
-SRC_URI[sha256sum] = "f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"
-SRC_URI[md5sum] = "5b2db50fcc31be34d32798183c9bd062"
+SRC_URI[sha256sum] = "26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594"
+SRC_URI[md5sum] = "7be95e1b35e9385d71a0017a48217efc"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.5.3.bb
similarity index 68%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.5.3.bb
index 1539300..e36a170 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_1.5.3.bb
@@ -3,8 +3,8 @@
 LICENSE = "PSF"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
 
-SRC_URI[md5sum] = "ccd872c5effef77bf4028c67c0619f6c"
-SRC_URI[sha256sum] = "38fe66d5f7720835703a07fe8d0a4b5eda87f692f3cf4fb01543407b79857edf"
+SRC_URI[md5sum] = "7cfa242b99351646fab0d76b05aab747"
+SRC_URI[sha256sum] = "567631fc922b1c2c528c376795f18dcc0604d18702e0b8b50e8e35f0474214a5"
 
 inherit setuptools3 pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.3.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.3.bb
index 57c2895..dbdd16f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cffi_1.14.3.bb
@@ -4,8 +4,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
 DEPENDS += "libffi ${PYTHON_PN}-pycparser"
 
-SRC_URI[md5sum] = "3cc2f1daf62dd66eda79b4d6281cebfc"
-SRC_URI[sha256sum] = "ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b"
+SRC_URI[md5sum] = "c2a47ffd5d183b193ac8ed3414dcfd07"
+SRC_URI[sha256sum] = "f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click-repl_0.1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click-repl_0.1.6.bb
new file mode 100644
index 0000000..fce9f98
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click-repl_0.1.6.bb
@@ -0,0 +1,9 @@
+SUMMARY = "REPL plugin for Click"
+HOMEPAGE = "https://github.com/untitaker/click-repl"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fee2943fdd4d8afbac9ccc1c8ac137d5"
+
+SRC_URI[md5sum] = "2d5f4d42cbd1da9a50a49dff4d6087ca"
+SRC_URI[sha256sum] = "b9f29d52abc4d6059f8e276132a111ab8d94980afe6a5432b9d996544afa95d5"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb
new file mode 100644
index 0000000..418f8a3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Spinner for Click"
+HOMEPAGE = "https://github.com/click-contrib/click-spinner"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[md5sum] = "ab68ed404401421819c81cc6c0677a87"
+SRC_URI[sha256sum] = "87eacf9d7298973a25d7615ef57d4782aebf913a532bba4b28a37e366e975daf"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.3.9.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.3.9.bb
index a44f02f..e677a69 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_1.3.9.bb
@@ -5,8 +5,8 @@
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
-SRC_URI[md5sum] = "c8ffa926c50673f00fd8ff8533e9f959"
-SRC_URI[sha256sum] = "38015008ff4639edfd66591063a0e9bb75a62dccb14ee3ec7bf3a6cb130de5cf"
+SRC_URI[md5sum] = "f5fbd528e7b5977ad71466947af61f99"
+SRC_URI[sha256sum] = "7f8035faafda15d26098bf2ffe16aaba1c78511ce13e0815d2efe58ba392b501"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.3.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.3.bb
index 48e352c..2354c5e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_5.3.bb
@@ -3,8 +3,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[md5sum] = "9e6165146b9bda60a779953c79e8ca54"
-SRC_URI[sha256sum] = "a34cb28e0747ea15e82d13e14de606747e9e484fb28d63c999483f5d5188e89b"
+SRC_URI[md5sum] = "c2faf2ccc498ce16fd48cc9201c520d7"
+SRC_URI[sha256sum] = "280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.1.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.9.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.1.bb
index 60316fc..59347c9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.9.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_3.1.bb
@@ -4,8 +4,8 @@
 LICENSE = "Apache-2.0 | BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4"
 
-SRC_URI[md5sum] = "657349b8de73959fc49ba15fd7346b58"
-SRC_URI[sha256sum] = "99ac91c4d89572399b097240809af1b8f67f4bedf43398d290c9b2b3d9f491b4"
+SRC_URI[md5sum] = "1ba5b0743e2876e909f7cfc28b744f27"
+SRC_URI[sha256sum] = "2660bc3a720d3955341803195ae5352a236c5f26e01a178c44fc5ee1f0ef1182"
 
 PYPI_PACKAGE = "cryptography_vectors"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.1.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.1.bb
index 05a2350..9ac23cd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_3.1.bb
@@ -6,8 +6,8 @@
 
 LDSHARED += "-pthread"
 
-SRC_URI[md5sum] = "163608a7cb838c6b39360e1e64377d54"
-SRC_URI[sha256sum] = "8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053"
+SRC_URI[md5sum] = "aa91e4974981b29e99b863c54034c361"
+SRC_URI[sha256sum] = "26409a473cc6278e4c90f782cd5968ebad04d3911ed1c402fc86908c17633e08"
 
 SRC_URI += " \
     file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.0.bb
new file mode 100644
index 0000000..489e719
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A Python package that provides customized docstring inheritance schemes between derived classes and their parents."
+HOMEPAGE = "https://github.com/rsokl/custom_inherit"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=adc1f231c76ee2f1f36025d56926ba2c"
+
+PYPI_PACKAGE = "custom_inherit"
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/0e/82/c5bb7ec49a7892a2c583e1017597e3921c59171f10602086ca93c8a83baa/custom_inherit-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "adf2850dc0e488df959821a5d4c16cbd"
+SRC_URI[sha256sum] = "1609d283c2cffce3a58baf7c0c22b655c55f85e1ec39c4717a4423d34610723a"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.4.bb
similarity index 68%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.4.bb
index 4da4be8..0a5f199 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbus-next_0.1.4.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=94e750c96e56788499b56c81de91431c"
 
-SRC_URI[md5sum] = "a823270b11c8dd7932c12adc6b2fadbb"
-SRC_URI[sha256sum] = "4dd9097778224c69228f7f2a0f52e9b13ec2c75e87974ad312525c927835e8fb"
+SRC_URI[md5sum] = "0d44e12e8689637a0c048ec7bb51d842"
+SRC_URI[sha256sum] = "1b1942bffcc8c9a5bd6834257df227a55ee28e07dd413ead82ddd23115652363"
 
 PYPI_PACKAGE = "dbus_next"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_4.1.0.bb
deleted file mode 100644
index 91cff0c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_4.1.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache."
-HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9e046ce8fae71087134866418f646ec3"
-
-SRC_URI[md5sum] = "21c9945e7707799e1c64956f8a54d4c3"
-SRC_URI[sha256sum] = "bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0"
-
-PYPI_PACKAGE = "diskcache"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.0.3.bb
new file mode 100644
index 0000000..7e89fa6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.0.3.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache."
+HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c985b6a9269e57a1073d5f142d68eb68"
+
+SRC_URI[md5sum] = "86fb97b0ff87cc5f1b31654ee0d341a1"
+SRC_URI[sha256sum] = "5f4bc2018d653a1d7bbdcdecce45ea12061bf8d3b5f0323b7a5402054a285c52"
+
+PYPI_PACKAGE = "diskcache"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.13.bb
deleted file mode 100644
index 55eacdf..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.13.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-django.inc
-inherit setuptools3
-
-SRC_URI[md5sum] = "30c688af9b63c4800ef9b044e0dd4145"
-SRC_URI[sha256sum] = "84f370f6acedbe1f3c41e1a02de44ac206efda3355e427139ecb785b5f596d80"
-
-RDEPENDS_${PN} += "\
-    ${PYTHON_PN}-sqlparse \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.16.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.16.bb
new file mode 100644
index 0000000..0715abb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_2.2.16.bb
@@ -0,0 +1,9 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[md5sum] = "93faf5bbd54a19ea49f4932a813b9758"
+SRC_URI[sha256sum] = "62cf45e5ee425c52e411c0742e641a6588b7e8af0d2c274a27940931b2786594"
+
+RDEPENDS_${PN} += "\
+    ${PYTHON_PN}-sqlparse \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.1.1.bb
new file mode 100644
index 0000000..ed6513d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_3.1.1.bb
@@ -0,0 +1,14 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[md5sum] = "d5e894fb3c46064e84e9dc68a08a46d0"
+SRC_URI[sha256sum] = "59c8125ca873ed3bdae9c12b146fbbd6ed8d0f743e4cf5f5817af50c51f1fc2f"
+
+RDEPENDS_${PN} += "\
+    ${PYTHON_PN}-sqlparse \
+"
+
+# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
+# default. To build the 3.x branch, 
+# PREFERRED_VERSION_python3-django = "3.1.1" can be added to local.conf
+DEFAULT_PREFERENCE = "-1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.5.2.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.5.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.5.2.bb
index 75dd4ef..2044338 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dominate_2.5.2.bb
@@ -2,8 +2,8 @@
 LICENSE = "LGPLv3"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
 
-SRC_URI[md5sum] = "35eeb6b5587c8c9a51cd22c83e07ac49"
-SRC_URI[sha256sum] = "9b05481605ea8c0afd0a98c0156a9fb78d9c406368d66b3e6fedf36920fb9d78"
+SRC_URI[md5sum] = "4a249c71cb009815923e9a47fa03ca08"
+SRC_URI[sha256sum] = "456facce7a7ccfd9363948109cf1e978d48c58e46a46b01c71b4c0adc73b1928"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.16.0.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.15.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.16.0.bb
index aba62f3..36bb246 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.15.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.16.0.bb
@@ -6,7 +6,8 @@
 DEPENDS += "python3-pip python3-pbr"
 
 PYPI_PACKAGE = "ecdsa"
-SRC_URI[sha256sum] = "8f12ac317f8a1318efa75757ef0a651abe12e51fc1af8838fb91079445227277"
+SRC_URI[md5sum] = "d593df1ab57da611dca76f7328c47b21"
+SRC_URI[sha256sum] = "494c6a853e9ed2e9be33d160b41d47afc50a6629b993d2b9c5ad7bb226add892"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
index a04c961..3fdc136 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
@@ -1,4 +1,13 @@
-require python-fann2.inc
-inherit pypi setuptools3
+SUMMARY = "Python bindings for Fast Artificial Neural Networks 2.2.0 (FANN >= 2.2.0)"
+SECTION = "devel/python"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f"
+
+SRC_URI[md5sum] = "0b85b418018746d63ed66b55465697a9"
+SRC_URI[sha256sum] = "cdca0a65ad48e08320672affe38c3dd4ea15e27821e5e1db9fa2b34299bdd41e"
 
 SRC_URI += " file://0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch"
+
+inherit pypi setuptools3
+
+DEPENDS += "swig-native libfann"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
similarity index 70%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_1.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
index d968be3..8a01b49 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_1.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
@@ -2,7 +2,8 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9"
 
-SRC_URI[sha256sum] = "d6a70468f9a8919d59fba2a291a003da3a05ff884275dddbd965f3b98b09ab3e"
+SRC_URI[md5sum] = "50d5e92d96ef58787bf85b5a1b0a5567"
+SRC_URI[sha256sum] = "f9faf45cdb2e1a32ea2ec14403587d4295108f35017a7821a2b1acb8cfd9257d"
 
 PYPI_PACKAGE = "Flask-Babel"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
index 0b963be..7a89cac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
@@ -1,2 +1,14 @@
+SUMMARY = "Flask extension for sending email"
+DESCRIPTION = "A Flask extension for sending email"
+HOMEPAGE = " https://github.com/rduplain/flask-email"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5b16dfa6d3f275ace5985bb92949f770"
+
+SRC_URI[md5sum] = "04b35a42a44ec7aa724ec8ce55e2e08e"
+SRC_URI[sha256sum] = "22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41"
+
+PYPI_PACKAGE = "Flask-Mail"
+
 inherit pypi setuptools3
-require python-flask-mail.inc
+
+RDEPENDS_${PN} = "${PYTHON_PN}-flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb
deleted file mode 100644
index c98cbfd..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-migrate.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.3.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.3.bb
index 5202f8b..54fa1dd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-migrate.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_2.5.3.bb
@@ -2,11 +2,13 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
 
-SRC_URI[md5sum] = "bedeb0366740fda6912fea683be11968"
-SRC_URI[sha256sum] = "a96ff1875a49a40bd3e8ac04fce73fdb0870b9211e6168608cbafa4eb839d502"
+SRC_URI[md5sum] = "707d4a5fd4e11d3113a1228aa7793176"
+SRC_URI[sha256sum] = "a69d508c2e09d289f6e55a417b3b8c7bfe70e640f53d2d9deb0d056a384f37ee"
 
 PYPI_PACKAGE = "Flask-Migrate"
 
+inherit pypi setuptools3
+
 RDEPENDS_${PN} += "\
     ${PYTHON_PN}-flask-sqlalchemy \
     ${PYTHON_PN}-alembic \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
index d251152..77735e3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
@@ -1,2 +1,15 @@
+DESCRIPTION = "Easily create navigation for Flask applications."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=2729ee82259d601d90d28b0574d12416"
+
+SRC_URI[md5sum] = "4d51cfd06d58f8d0fe85775a6696c0e5"
+SRC_URI[sha256sum] = "44e40b755380a1e68ab521a2f9174de259a2c94ddcdaabf36b3aca2e110a33f4"
+
+PYPI_PACKAGE = "flask-nav"
+
 inherit pypi setuptools3
-require python-flask-nav.inc
+
+RDEPENDS_${PN} += "\
+    ${PYTHON_PN}-blinker \
+    ${PYTHON_PN}-flask \
+    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
index 2102554..e3c744d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
@@ -1,2 +1,17 @@
+SUMMARY = "PyMongo support for Flask applications"
+DESCRIPTION = "PyMongo support for Flask applications."
+HOMEPAGE = "https://github.com/mitsuhiko/flask/"
+SECTION = "devel/python"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;beginline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d"
+
+SRC_URI[md5sum] = "94df71e6800b1d7915cc91a74b70f959"
+SRC_URI[sha256sum] = "620eb02dc8808a5fcb90f26cab6cba9d6bf497b15032ae3ca99df80366e33314"
+
+PYPI_PACKAGE = "Flask-PyMongo"
+
 inherit pypi setuptools3
-require python-flask-pymongo.inc
+
+DEPENDS = "${PYTHON_PN}-vcversioner ${PYTHON_PN}-vcversioner-native"
+
+RDEPENDS_${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb
deleted file mode 100644
index 6bff59a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-flask-restful.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.8.bb
similarity index 70%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.8.bb
index dcbcd0d..3de916a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-restful.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-restful_0.3.8.bb
@@ -6,10 +6,10 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=685bb55ed99a366bb431995f5eef2783"
 
-SRC_URI[md5sum] = "a7217ef1159be38af5faf61aa09aabef"
-SRC_URI[sha256sum] = "f8240ec12349afe8df1db168ea7c336c4e5b0271a36982bff7394f93275f2ca9"
+SRC_URI[md5sum] = "e8051ff104ab4b3b867ba18d28953fae"
+SRC_URI[sha256sum] = "5ea9a5991abf2cb69b4aac19793faac6c032300505b325687d7c305ffaa76915"
 
-inherit pypi
+inherit pypi setuptools3
 
 PYPI_PACKAGE = "Flask-RESTful"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb
deleted file mode 100644
index ffc4aa7..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-flask-socketio.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.3.1.bb
similarity index 67%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.3.1.bb
index 8d778d4..b8631bf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-socketio.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_4.3.1.bb
@@ -5,12 +5,12 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0"
 
-inherit pypi
+inherit pypi setuptools3
 
 PYPI_PACKAGE = "Flask-SocketIO"
 
-SRC_URI[md5sum] = "b23222fb7dd2f0676d78bbe24153fd80"
-SRC_URI[sha256sum] = "2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec"
+SRC_URI[md5sum] = "d7992b0b4aaf473b7eff21fc14e8d1b2"
+SRC_URI[sha256sum] = "36c1d5765010d1f4e4f05b4cc9c20c289d9dc70698c88d1addd0afcfedc5b062"
 
 RDEPENDS_${PN} += "\
     ${PYTHON_PN}-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb
deleted file mode 100644
index 07f45bc..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-sqlalchemy.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.4.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.4.bb
index 86ba9dd..2755c7d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.4.4.bb
@@ -2,9 +2,11 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[md5sum] = "1f5781cf3e1a2b1aabda47a5b20d2073"
-SRC_URI[sha256sum] = "6974785d913666587949f7c2946f7001e4fa2cb2d19f4e69ead02e4b8f50b33d"
+SRC_URI[md5sum] = "63a522cb82a75292dc8bc77b6d26187a"
+SRC_URI[sha256sum] = "bfc7150eaf809b1c283879302f04c42791136060c6eeb12c0c6674fb1291fae5"
 
 PYPI_PACKAGE = "Flask-SQLAlchemy"
 
+inherit pypi setuptools3
+
 RDEPENDS_${PN} = "${PYTHON_PN}-sqlalchemy ${PYTHON_PN}-flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb
index 251017f..a59019a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb
@@ -1,2 +1,19 @@
+SUMMARY = "Customizable user account management for Flask"
+DESCRIPTION = "Customizable User Account Management for Flask; Register \
+Confirm email, Login, Change username, Change password, Forgot Password \
+and more."
+HOMEPAGE = " https://github.com/lingthio/Flask-User"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=97de97cd9d6e23c88129d884588ce71a"
+
+SRC_URI[md5sum] = "f7965e66ca139c8436896da07e66c21f"
+SRC_URI[sha256sum] = "601abcc0343dfbae0c56273d98362d5cdc266ac84d20b3f65a212e4a2c83b302"
+
+PYPI_PACKAGE = "Flask-User"
+
 inherit pypi setuptools3
-require python-flask-user.inc
+
+RDEPENDS_${PN} = "${PYTHON_PN}-flask \
+    ${PYTHON_PN}-flask-login \
+    ${PYTHON_PN}-flask-mail \
+    ${PYTHON_PN}-babel"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb
deleted file mode 100644
index 52362a8..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-wtf.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.3.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.3.bb
index 8636711..213a0b5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.3.bb
@@ -2,11 +2,13 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3ca6bb31670492f791e6a9f2fb9f8a80"
 
-SRC_URI[md5sum] = "586f50f233926cade42e3d744aca3e8f"
-SRC_URI[sha256sum] = "5d14d55cfd35f613d99ee7cba0fc3fbbe63ba02f544d349158c14ca15561cc36"
+SRC_URI[md5sum] = "1b60b7dd1245b0d0173c21123717af61"
+SRC_URI[sha256sum] = "d417e3a0008b5ba583da1763e4db0f55a1269d9dd91dcc3eb3c026d3c5dbd720"
 
 PYPI_PACKAGE = "Flask-WTF"
 
+inherit pypi setuptools3
+
 RDEPENDS_${PN} = "\
     ${PYTHON_PN}-flask \
     ${PYTHON_PN}-itsdangerous \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb
deleted file mode 100644
index cd43990..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.2.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.2.bb
index 1263383..2379961 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_1.1.2.bb
@@ -6,11 +6,13 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[md5sum] = "0e3ed44ece1c489ed835d1b7047e349c"
-SRC_URI[sha256sum] = "13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52"
-
-CLEANBROKEN = "1"
+SRC_URI[md5sum] = "0da4145d172993cd28a6c619630cc19c"
+SRC_URI[sha256sum] = "4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"
 
 PYPI_PACKAGE = "Flask"
 
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
 RDEPENDS_${PN} = "${PYTHON_PN}-werkzeug ${PYTHON_PN}-jinja2 ${PYTHON_PN}-itsdangerous ${PYTHON_PN}-click"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.4.0.bb
deleted file mode 100644
index df688e4..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.4.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-gevent.inc
-inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_20.6.2.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_20.6.2.bb
index bc89d10..dbeb3a6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_20.6.2.bb
@@ -18,11 +18,10 @@
 
 SRC_URI_append = " \
     file://libev-conf.patch;patch=1;pnum=1 \
-    file://0002-setup.py-do-not-query-for-include-dir.patch \
 "
 
-SRC_URI[md5sum] = "6b9dd98917061803d9158e5258b8f412"
-SRC_URI[sha256sum] = "1eb7fa3b9bd9174dfe9c3b59b7a09b768ecd496debfc4976a9530a3e15c990d1"
+SRC_URI[md5sum] = "27b07fe9fdfff2d75e3d140e890489b1"
+SRC_URI[sha256sum] = "a23c2abf08e851c988723f6a2996d495f513a2c0dc70f9956af03af8debdb5d1"
 
 # The python-gevent has no autoreconf ability
 # and the logic for detecting a cross compile is flawed
@@ -32,4 +31,4 @@
 	sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/c-ares/configure
 }
 
-inherit pypi
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.12.1.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.10.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.12.1.bb
index 37b6fc6..d79ac3c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.10.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_1.12.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=94023d14f6b58272fd885e4e3f2f08b3"
 
-SRC_URI[md5sum] = "a0064953388af9f9c61d8347f1e2ae0c"
-SRC_URI[sha256sum] = "fa24f07f6124ff2e91ee9b7550e240481bcb31b8f77a75e8d481be1c44a6ff07"
+SRC_URI[md5sum] = "92106822131f76ca77b77009674e78e4"
+SRC_URI[sha256sum] = "ddadc243ce627512c2a27e11d369f5ddf658ef80dbffb247787499486ef1ea98"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_1.0.1.bb
new file mode 100644
index 0000000..9447c18
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_1.0.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A Python 3 client for the beanstalkd work queue"
+HOMEPAGE = "https://github.com/mayhewj/greenstalk"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8f98432ba1fce3933c556430fd47298f"
+
+SRC_URI[md5sum] = "3374649586a8016fecaf0ce5ecf9985d"
+SRC_URI[sha256sum] = "0c9f2af79ac8ea526891ae8d7e9500341a0f657465a541d6eaedb35ff70f4fe3"
+
+RDEPENDS_${PN} += "python3-io python3-core"
+
+inherit pypi
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb
index fc2cc7d..6e02fcf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-haversine_2.3.0.bb
@@ -2,8 +2,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
-SRC_URI[md5sum] = "6b1badeb63aac6214c978d07a4ecd171"
-SRC_URI[sha256sum] = "b710aaf32c442a6d04aa89678be55e3f6c11f9752fc01c216e89b13120b36269"
+SRC_URI[md5sum] = "ff2d43a74195ec00c42ccd5da2a3f3de"
+SRC_URI[sha256sum] = "72c76855ac25e6ad054c7ed380e95c1a96803185f005dd11f40ccaa9620b551f"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
index 0a3b773..b5cde66 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
@@ -4,8 +4,8 @@
 SECTION = "devel/python"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2fb6fa1a6f1792d78de19ad1bb653c31"
 
-SRC_URI[md5sum] = "87b2ab6ffdd6e15aa31d109ce5ff10bb"
-SRC_URI[sha256sum] = "f576e85132d34f5bf7df5183c2c6f94cfb32e528f53065345cf71329ba0b8924"
+SRC_URI[md5sum] = "c3287d4f0e3bdf625a52d655cc514403"
+SRC_URI[sha256sum] = "1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.17.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.18.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.17.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.18.1.bb
index ddcddd6..8ee9216 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.17.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_7.18.1.bb
@@ -6,8 +6,8 @@
 
 PYPI_PACKAGE = "ipython"
 
-SRC_URI[md5sum] = "1f2257d771de9d2fb40d9e3cfcea429d"
-SRC_URI[sha256sum] = "b70974aaa2674b05eb86a910c02ed09956a33f2dd6c71afc60f0b128a77e7f28"
+SRC_URI[md5sum] = "f2db1158dc40d70a31b6bbef86e74789"
+SRC_URI[sha256sum] = "a331e78086001931de9424940699691ad49dfb457cea31f5471eae7b78222d5e"
 
 RDEPENDS_${PN} = "\
     ${PYTHON_PN}-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.13.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.13.bb
index 74b5bdc..9e7494b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso8601_0.1.13.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844"
 
-SRC_URI[md5sum] = "4de940f691c5ea759fb254384c8ddcf6"
-SRC_URI[sha256sum] = "49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82"
+SRC_URI[md5sum] = "df6e924305fd799d90be63336b2ab8b3"
+SRC_URI[sha256sum] = "f7dec22af52025d4526be94cc1303c7d8f5379b746a3f54a8c8446384392eeb1"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.5.2.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.4.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.5.2.bb
index 6b1cee4..0d04157 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isort_5.5.2.bb
@@ -4,8 +4,8 @@
 SECTION = "devel/python"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489"
 
-SRC_URI[md5sum] = "59592b6e14beba48149d651e900e3815"
-SRC_URI[sha256sum] = "d488ba1c5a2db721669cc180180d5acf84ebdc5af7827f7aaeaa75f73cf0e2b8"
+SRC_URI[md5sum] = "844c49ad1bf16a957b490c27b3b9844f"
+SRC_URI[sha256sum] = "171c5f365791073426b5ed3a156c2081a47f88c329161fd28228ff2da4c97ddb"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.51.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.52.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.51.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.52.bb
index 8340382..e6ccd7b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.51.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.52.bb
@@ -6,8 +6,8 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRC_URI[md5sum] = "5d28198fa933dac5c037108d8f5cf3bb"
-SRC_URI[sha256sum] = "8d4615cc0bb0fa49faa05b55ff49b1f41122b8092ca18a5d10f1e1699d6d7b3c"
+SRC_URI[md5sum] = "240a62b84ed29f6530ceae60609f7eff"
+SRC_URI[sha256sum] = "a2c499704c91c0a23e5db92e80ad1d45e51466b82ffaee478e5bb781460b3db5"
 
 inherit pypi setuptools3 python3native
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_1.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_1.16.1.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_1.15.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_1.16.1.bb
index 17445e7..3428dbe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_1.15.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-core_1.16.1.bb
@@ -6,8 +6,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "9c890fa8e387a035ff0d1ae96a0715f1"
-SRC_URI[sha256sum] = "e0e14c762695fb8758e8b15cfd28cd4c1618bf2fd93157c8770a2e8e0e254ae5"
+SRC_URI[md5sum] = "de7bda49c4146ba242923a88c587cd7a"
+SRC_URI[sha256sum] = "2181a60906fea3104dcfa3923f9654928502cd7541ff9b4d76c6ae29c6a9d9fc"
 
 CLEANBROKEN = "1"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.3.2.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.3.2.bb
index 6273ee2..a2e7074 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.3.2.bb
@@ -7,7 +7,7 @@
 SECTION = "devel/python"
 LICENSE = "PSF"
 LIC_FILES_CHKSUM = "\
-    file://setup.py;beginline=251;endline=251;md5=e0ef37de7122ce842bcd1fb54482b353 \
+    file://setup.py;beginline=259;endline=259;md5=e0ef37de7122ce842bcd1fb54482b353 \
     file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
 "
 DEPENDS = "\
@@ -19,8 +19,8 @@
     python3-certifi-native \
 "
 
-SRC_URI[md5sum] = "f3a405f340be5b151cb2042c4d8d16f7"
-SRC_URI[sha256sum] = "87f53bcce90772f942c2db56736788b39332d552461a5cb13f05ff45c1680f0e"
+SRC_URI[md5sum] = "a85791908e78818bd425ba9ab38500fa"
+SRC_URI[sha256sum] = "3d2edbf59367f03cd9daf42939ca06383a7d7803e3993eb5ff1bee8e8a3fbb6b"
 
 inherit pypi setuptools3 pkgconfig
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.2.1.bb
deleted file mode 100644
index d3a9971..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.2.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "McCabe checker, plugin for flake8"
-HOMEPAGE = "https://github.com/dreamhost/cliff"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=aa0383f6aee4f5c20084a97cd13164c4"
-
-SRC_URI[md5sum] = "5a3f3fa6a4bad126c88aaaa7dab682f5"
-SRC_URI[sha256sum] = "5a2a170e47de5593a6abfae1e9542bd2c3924ac62bbe4e6ed96c953c0352243a"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += "${PYTHON_PN}-prettytable \
-            ${PYTHON_PN}-cmd2 \
-            ${PYTHON_PN}-pyparsing \
-           "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.6.1.bb
new file mode 100644
index 0000000..63a9e35
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mccabe_0.6.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "McCabe checker, plugin for flake8"
+HOMEPAGE = "https://github.com/dreamhost/cliff"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a489dc62bacbdad3335c0f160a974f0f"
+
+SRC_URI[md5sum] = "723df2f7b1737b8887475bac4c763e1e"
+SRC_URI[sha256sum] = "dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-pytest-runner-native"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-prettytable \
+            ${PYTHON_PN}-cmd2 \
+            ${PYTHON_PN}-pyparsing \
+           "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.5.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.5.0.bb
index f040b1a..e924b0f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-more-itertools_8.5.0.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
 
-SRC_URI[md5sum] = "0912041c05148ed079984cff69af2e99"
-SRC_URI[sha256sum] = "68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5"
+SRC_URI[md5sum] = "2588b5a7042576b99574779582be9292"
+SRC_URI[sha256sum] = "6f83822ae94818eae2612063a5101a7311e68ae8002005b5e05f03fd74a86a20"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.16.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.15.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.16.bb
index af011cc..a3206f7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.15.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-msk_0.3.16.bb
@@ -3,8 +3,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://README.md;md5=2f90e43663eddf1c33087419fbb35e28"
 
-SRC_URI[md5sum] = "dcb286c489d24d8b0fb8413835f7478a"
-SRC_URI[sha256sum] = "56d3557889ee2ceebc72284f979aa6ddd4c7fbe2af31142eb6f51404f14516d5"
+SRC_URI[md5sum] = "8a4fc92a074544f81f482da2c21ef989"
+SRC_URI[sha256sum] = "c6a717fc068f7c69ddc8cb21dbeeda7cfa97a4e9f41690459c9fbec68b16ee87"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
index de930f9..f5e3f59 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
@@ -3,8 +3,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa"
 
-SRC_URI[md5sum] = "16f755ea554c332cdb666dfc1109f7f2"
-SRC_URI[sha256sum] = "9878eecbf7255d4907637700ecfeeacb9fe586409ee3ae05d406683ad18d7e5e"
+SRC_URI[md5sum] = "cf1fc0d1d86af68003cae53c71ec6288"
+SRC_URI[sha256sum] = "a502aee54917cd394217b31c977a1ba3d9541a0120e0a045c49fd77b328e4a29"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.4.bb
deleted file mode 100644
index 5708e35..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Python package for creating and manipulating graphs and networks"
-HOMEPAGE = "http://networkx.github.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b68290ee1026b204170a23bbdb27a4fd"
-
-SRC_URI[md5sum] = "63e3fdc9d3a46bcabc776acc5ea5fe48"
-SRC_URI[sha256sum] = "f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += "\
-                   ${PYTHON_PN}-decorator \
-                   "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.bb
new file mode 100644
index 0000000..7057382
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_2.5.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Python package for creating and manipulating graphs and networks"
+HOMEPAGE = "http://networkx.github.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a24ea029adac8935699bf69b2e38c728"
+
+SRC_URI[md5sum] = "21f25be1f4373e19153a9beca63346e7"
+SRC_URI[sha256sum] = "7978955423fbc9639c10498878be59caf99b44dc304c2286162fd24b458c1602"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+                   ${PYTHON_PN}-decorator \
+                   "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.4.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.4.8.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.4.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.4.8.bb
index 5ebd757..2037d49 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.4.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-nmap_1.4.8.bb
@@ -8,8 +8,8 @@
 
 PYPI_PACKAGE = "python3-nmap"
 
-SRC_URI[md5sum] = "4dce15e7889b1e9bfa8e1e2e0904795c"
-SRC_URI[sha256sum] = "127b7ad604a3fd34578a6ad848a603ccf1608c607577eb3bba097a1e2fc8f48a"
+SRC_URI[md5sum] = "e7904b39b64a8a44f275388862659a0d"
+SRC_URI[sha256sum] = "8d7da78142bee665289a243f71c5f48407d8ab7e5a02ee672ded05f339044759"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.0.bb
new file mode 100644
index 0000000..dae1ebf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-nocasedict_1.0.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A case-insensitive ordered dictionary for Python"
+HOMEPAGE = "https://github.com/pywbem/nocasedict"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+SRC_URI[md5sum] = "14b405bf7ffe9d0f784aa9c3c39e277b"
+SRC_URI[sha256sum] = "22840b434e40f20da6d2ccf0821baba54589e2476499b65420b6e4c2e669aa04"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-nocaselist_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-nocaselist_1.0.2.bb
new file mode 100644
index 0000000..8509cd0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-nocaselist_1.0.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A case-insensitive list for Python"
+HOMEPAGE = "https://nocaselist.readthedocs.io/en/latest/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[md5sum] = "10e58542c1225aff3f057e89e9ae4394"
+SRC_URI[sha256sum] = "3cfe964c436991cd6bd9f2cf23375c484ec7cf0c7488471381eff13a4fdac902"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb
deleted file mode 100644
index ce2618b..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "This module offers a simple interface to query NTP servers from Python."
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://ntplib.py;beginline=1;endline=23;md5=afa07338a9595257e94c205c3e72224d"
-
-SRCNAME = "ntplib"
-SRC_URI[md5sum] = "c7cc8e9b09f40c84819859d70b7784ca"
-SRC_URI[sha256sum] = "c4621b64d50be9461d9bd9a71ba0b4af06fbbf818bbd483752d95c1a4e273ede"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit setuptools3 python3native pypi
-
-RDEPENDS_${PN} += "${PYTHON_PN}-datetime ${PYTHON_PN}-io"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.3.4.bb
new file mode 100644
index 0000000..ae4c10f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ntplib_0.3.4.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "This module offers a simple interface to query NTP servers from Python."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://ntplib.py;beginline=1;endline=23;md5=afa07338a9595257e94c205c3e72224d"
+
+SRC_URI = "git://github.com/cf-natali/ntplib.git"
+SRCREV ?= "aea7925c26152024ca8cf207e77f403f8127727a"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3 python3native
+
+RDEPENDS_${PN} += "${PYTHON_PN}-datetime ${PYTHON_PN}-io"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.5.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.5.bb
index d0946e4..0aa9fb0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-openpyxl_3.0.5.bb
@@ -9,7 +9,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "8491219f6bd83ca6ad8334bf77435cf5"
-SRC_URI[sha256sum] = "d88dd1480668019684c66cfff3e52a5de4ed41e9df5dd52e008cbf27af0dbf87"
+SRC_URI[md5sum] = "526b7149538575d58e55df1bd37807c1"
+SRC_URI[sha256sum] = "18e11f9a650128a12580a58e3daba14e00a11d9e907c554a17ea016bf1a2c71b"
 
 RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell ${PYTHON_PN}-jdcal ${PYTHON_PN}-et-xmlfile"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.1.2.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.1.2.bb
index 7d65287..1eade98 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.1.2.bb
@@ -6,8 +6,8 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c2a8f987b2ce77c368c6b3e1b5b10774"
 
-SRC_URI[md5sum] = "512da48424b85bf198002bdbdf38af5a"
-SRC_URI[sha256sum] = "b39508562ad0bb3f384b0db24da7d68a2608b9ddc85b1d931ccaaa92d5e45273"
+SRC_URI[md5sum] = "b4ce7c64f549ed48b47877fc64281031"
+SRC_URI[sha256sum] = "b64ffd87a2cfd31b40acd4b92cb72ea9a52a48165aec4c140e78fd69c45d1444"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.2.bb
similarity index 66%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.2.bb
index 0ead236..324847c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.7.2.bb
@@ -3,8 +3,8 @@
 LICENSE = "LGPL-2.1"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
 
-SRC_URI[md5sum] = "bf8239dc820ca86dd3c3226f4281c35f"
-SRC_URI[sha256sum] = "920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f"
+SRC_URI[md5sum] = "44136d79da4cd7619e368018ad022619"
+SRC_URI[sha256sum] = "7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035"
 
 PYPI_PACKAGE = "paramiko"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.18.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.16.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.18.0.bb
index a1e9452..ed9204e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.18.0.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8ab458ad281b60e6f1b39b3feafbfc05"
 
-SRC_URI[md5sum] = "ba263b3143e9528ae960bbba4d56bf25"
-SRC_URI[sha256sum] = "cd89e57aed38dcf3e0ff8253f53121a3b23e6181758993323658bffc048a5c19"
+SRC_URI[md5sum] = "42ea0002cf36bfd2bd74f3c05bf25f60"
+SRC_URI[sha256sum] = "91666032d6723dc5905248417ef0dc9e4c51df9526aaeef271eacad6491f06a4"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
index 35aee42..005fea5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
@@ -1,6 +1,6 @@
-From 862a981ce462cd83a99e3db9faeeda1f8c64983f Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 18 Mar 2019 23:23:55 -0400
+From 27bfa4028453dc79a72569823e97da8fd1994ffc Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Tue, 1 Sep 2020 11:53:53 +0000
 Subject: [PATCH] explicitly set compile options
 
 OE does not support to install egg package, so
@@ -10,19 +10,19 @@
 Upstream-Status: Inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 ---
  setup.cfg | 12 ++++++++++++
  1 file changed, 12 insertions(+)
 
 diff --git a/setup.cfg b/setup.cfg
-index 1c6ebc84..1ccc3d69 100644
+index 19979cf7..ed27dfe1 100644
 --- a/setup.cfg
 +++ b/setup.cfg
-@@ -13,3 +13,15 @@ multi_line_output = 3
- 
+@@ -11,3 +11,15 @@ multi_line_output = 3
  [tool:pytest]
- addopts = -rs
+ addopts = -ra --color=yes
+ testpaths = Tests
 +
 +[build_ext]
 +disable-platform-guessing = 1
@@ -35,3 +35,6 @@
 +disable-webp = 1
 +disable-webpmux = 1
 +disable-imagequant = 1
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_7.2.0.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_7.2.0.bb
index a383a3f..13cab43 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_6.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_7.2.0.bb
@@ -3,13 +3,13 @@
 Contributors."
 HOMEPAGE = "https://pillow.readthedocs.io"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=55c0f320370091249c1755c0d2b48e89"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea2dc3f5611e69058503d4b940049d03"
 
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=6.2.x \
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=7.2.x \
            file://0001-support-cross-compiling.patch \
            file://0001-explicitly-set-compile-options.patch \
 "
-SRCREV ?= "6e0f07bbe38def22d36ee176b2efd9ea74b453a6"
+SRCREV ?= "2bd74943fb9f320def6c066e732b701d1c15f677"
 
 
 inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.16.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.14.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.16.bb
index 333b015..7775d73 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.14.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pint_0.16.bb
@@ -10,8 +10,8 @@
 
 inherit pypi ptest setuptools3
 
-SRC_URI[md5sum] = "e5e409806bc82f518230117b30ae23ed"
-SRC_URI[sha256sum] = "9aa450ebb9d722ed03fa9a450104cfd16c479b49f862d547c6f77320de597f72"
+SRC_URI[md5sum] = "ec78e4e42512b93f80b9093416ad7417"
+SRC_URI[sha256sum] = "e437420e65fa72a2805f4036f986669c48d54944eeb0e47c8ba16f98cbdcd599"
 
 DEPENDS += "python3-setuptools-scm-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.7.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.7.bb
index 806e67c..7b0d1a0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.7.bb
@@ -3,8 +3,8 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
 
-SRC_URI[md5sum] = "e50cb328715b338480d8d29dda54ff5d"
-SRC_URI[sha256sum] = "7630ab85a23302839a0f26b31cc24f518e6155dea1ed395ea61b42c45941b6a6"
+SRC_URI[md5sum] = "f1b34c688ef7dccccb951130f008f6fe"
+SRC_URI[sha256sum] = "822f4605f28f7d2ba6b0b09a31e25e140871e96364d1d377667b547bb3bf4489"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_7.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_7.3.0.bb
similarity index 66%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_7.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_7.3.0.bb
index 257778b..b444df0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_7.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_7.3.0.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
 
-SRC_URI[md5sum] = "20ed7ec024fd4739446d42f8d19813b8"
-SRC_URI[sha256sum] = "c522c5ecb554471ca8e5690c05530b1c237c301349061d3839c506984f8d3c2d"
+SRC_URI[md5sum] = "7ab862743ff33dafc93206c1435abc5e"
+SRC_URI[sha256sum] = "f594231efb34b86eeb463611662bca21a6962793885d3ad68195286940f7473d"
 
 PYPI_PACKAGE = "PyChromecast"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.6.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.6.bb
index 5a1c179..0437a6c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycurl_7.43.0.6.bb
@@ -12,8 +12,8 @@
                     file://COPYING-MIT;md5=60872a112595004233b769b6cbfd65b6 \
                     "
 
-SRC_URI[md5sum] = "0b387d4609ed20c88baede8579a4d425"
-SRC_URI[sha256sum] = "ec7dd291545842295b7b56c12c90ffad2976cc7070c98d7b1517b7b6cd5994b3"
+SRC_URI[md5sum] = "3e121d895101022c30619e1bbf97eb97"
+SRC_URI[sha256sum] = "8301518689daefa53726b59ded6b48f33751c383cf987b0ccfbbc4ed40281325"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.3.bb
new file mode 100644
index 0000000..bca0ba7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydicti_1.1.3.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Case insensitive derivable dictionary"
+HOMEPAGE = "https://github.com/coldfix/pydicti"
+LICENSE = "WTFPL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=389a9e29629d1f05e115f8f05c283df5"
+
+SRC_URI[md5sum] = "b02ed35da91e400f1f17a57ab02ba06b"
+SRC_URI[sha256sum] = "eea50576baa751a9b6b862f09f081c47d557e0298623ca8742851da72b00eec4"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.128.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.131.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.128.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.131.bb
index e27bf99..82ab803 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.128.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.131.bb
@@ -3,8 +3,8 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
 
-SRC_URI[md5sum] = "a90a25def591c6a265bc904f801646f1"
-SRC_URI[sha256sum] = "714b8b5c8debb4b5e0e602a5fe8a599206e89c1313244ed0e69d9e0bc816f1f7"
+SRC_URI[md5sum] = "8844204f8b059ff2fc508ba9ac07dcb2"
+SRC_URI[sha256sum] = "59adb7ee95bfb1b5c35abbc01b5372df7327baea4a8df9efe30140ea64b73c18"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.10.1.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.10.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.10.1.bb
index 895c47b..15ace44 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.10.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_0.10.1.bb
@@ -8,8 +8,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=528175c84163bb800d23ad835c7fa0fc"
 
-SRC_URI[md5sum] = "d08058b1592724d5808c43f56050f245"
-SRC_URI[sha256sum] = "e14070bc84e050e0f80bf6063e31d276f03a0bb4d46b9eca2854566c4ae19837"
+SRC_URI[md5sum] = "4a1fe973afbbdd78928650118ce8ff68"
+SRC_URI[sha256sum] = "263040d2779a3b84930f7ac9da5132be0fefcd6f453a885756656103f8ee1fdd"
 
 PYPI_PACKAGE = "PyMySQL"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.14.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.13.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.14.bb
index 4fb4019..84397b6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.13.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.14.bb
@@ -3,8 +3,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
 
-SRC_URI[md5sum] = "6c72ffa7147bbfa1610942e5734c8c87"
-SRC_URI[sha256sum] = "518365f3313e73b0f024b9fa7a580b29bfa2fe2c5230be0bc69c068bbf6637e9"
+SRC_URI[md5sum] = "6bde3624a6f22bdfb630bb54243a0d1d"
+SRC_URI[sha256sum] = "774c5ecf05fe40f0f601a7ab33c19ca0b24f00bf4a094e58deaa5333b7ca49b5"
 
 inherit setuptools3 pypi ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb
similarity index 66%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.16.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb
index dec6611..72736c8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrsistent_0.17.3.bb
@@ -3,14 +3,13 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE.mit;md5=ca574f2891cf528b3e7a2ee570337e7c"
 
-SRC_URI[md5sum] = "4ba30da6f0a63554e70ac6c4c1904929"
-SRC_URI[sha256sum] = "28669905fe725965daa16184933676547c5bb40a5153055a8dee2a4bd7933ad3"
+SRC_URI[md5sum] = "cd38658ea772a7f9b12b6f9485a7018b"
+SRC_URI[sha256sum] = "2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"
 
 inherit pypi setuptools3
 
 RDEPENDS_${PN} += " \
     ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-six \
 "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb
deleted file mode 100644
index 44c24f4..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "PyUSB provides USB access on the Python language"
-HOMEPAGE = "http://pyusb.sourceforge.net/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=51691ed11cc2c7ae93e383f60ed49b0f"
-DEPENDS += "libusb1"
-
-SRC_URI[md5sum] = "862b56452c64948c787ad8ef9498590b"
-SRC_URI[sha256sum] = "4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.0.bb
new file mode 100644
index 0000000..6b48d6a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyusb_1.1.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "PyUSB provides USB access on the Python language"
+HOMEPAGE = "http://pyusb.sourceforge.net/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c52a96fd9a0cadcb9270904c8eb5416c"
+DEPENDS += "libusb1 ${PYTHON_PN}-setuptools-scm-native"
+
+SRC_URI[md5sum] = "3b2e38e9f697d2f90d86376bd10a9505"
+SRC_URI[sha256sum] = "d69ed64bff0e2102da11b3f49567256867853b861178689671a163d30865c298"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_17.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_19.0.2.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_17.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_19.0.2.bb
index 2369f06..3c4e32b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_17.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_19.0.2.bb
@@ -8,8 +8,8 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyzmq:"
 
 SRC_URI += "file://club-rpath-out.patch"
-SRC_URI[md5sum] = "aecdfc328193fbd81f6dc23228319943"
-SRC_URI[sha256sum] = "2199f753a230e26aec5238b0518b036780708a4c887d4944519681a920b9dee4"
+SRC_URI[md5sum] = "200abc1a75bdcfff7adf61304f46f55e"
+SRC_URI[sha256sum] = "296540a065c8c21b26d63e3cea2d1d57902373b16e4256afe46422691903a438"
 
 inherit pypi pkgconfig setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.2.2.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.2.2.bb
index a5e3a2a..10f031c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_3.2.2.bb
@@ -12,8 +12,8 @@
 inherit pypi setuptools3
 
 PYPI_PACKAGE_EXT = "zip"
-SRC_URI[md5sum] = "ac8aaad885e48c6b6cd5461be5b8149f"
-SRC_URI[sha256sum] = "d693e6d06b17f48669e2a8c4cb6c1f0d56e5f1a74835d18b8ea2118da7bf2d79"
+SRC_URI[md5sum] = "ac6b77c223821856e8ac077acf5a7c1d"
+SRC_URI[sha256sum] = "a0786a916d0572bd9d6afe26e95c6021e3df5dcafa0ece6b302e36366e58c24e"
 
 RDEPENDS_${PN} += " \
     ${PYTHON_PN}-shell \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.12.bb
similarity index 72%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.10.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.12.bb
index 076721a..ec8545d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ruamel-yaml_0.16.12.bb
@@ -8,8 +8,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "02774e7ed3273b3d8eee6c08326b91c4"
-SRC_URI[sha256sum] = "099c644a778bf72ffa00524f78dd0b6476bca94a1da344130f4bf3381ce5b954"
+SRC_URI[md5sum] = "c7e4b216d9554d80be42011b448b7c61"
+SRC_URI[sha256sum] = "076cc0bc34f1966d920a49f18b52b6ad559fbe656a0748e3535cf7b3f29ebf9e"
 
 do_install_prepend() {
     export RUAMEL_NO_PIP_INSTALL_CHECK=1
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_0.16.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_0.17.5.bb
similarity index 72%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_0.16.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_0.17.5.bb
index ad01f6f..5495fa0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_0.16.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_0.17.5.bb
@@ -5,8 +5,8 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341"
 
-SRC_URI[md5sum] = "6d65fda758929b6a8d16e6030302c811"
-SRC_URI[sha256sum] = "e12eb1c2c01cd9e9cfe70608dbda4ef451f37ef0b7cbb92e5d43f87c341d6334"
+SRC_URI[md5sum] = "dcdf0d4f84f4f6ea02ad3f15dfcff2d9"
+SRC_URI[sha256sum] = "02f2a72698453f722b102562eb6430d2a82d6c6c40f2b991ed69e7628142de6a"
 
 PYPI_PACKAGE = "sentry-sdk"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.13.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.0.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.13.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.0.bb
index 2a6d9bc..7724f4b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.13.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.0.bb
@@ -3,8 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5317094292296f03405f59ae5f6544b6"
 
-SRC_URI[md5sum] = "7e3dd3a6b49c06db93746994a68cb8cf"
-SRC_URI[sha256sum] = "97a3d2205e3c6a842d87ebbc9ae93acae5a352b1bc4609b428d0fd5bb9e286a3"
+SRC_URI[md5sum] = "4cbbcb85c081d78f4b0f00d634db9bb9"
+SRC_URI[sha256sum] = "05c7e520cdf70f70a7228a03b589da9f96c6e0d06fc487ab21fc62b26a592e59"
 
 PYPI_PACKAGE = "sh"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.2.2.bb
similarity index 71%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.2.2.bb
index 0a2bffd..18eae35 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.2.2.bb
@@ -3,8 +3,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[md5sum] = "6a39764d7aecc63a0990cf4635cb430d"
-SRC_URI[sha256sum] = "38791aa5bed922b0a844513c5f9ed37774b68edc609e5ab8ab8d8fe0ce4315e5"
+SRC_URI[md5sum] = "c78357a02888490ef27a0d898eb97172"
+SRC_URI[sha256sum] = "f845868b3a3a77a2489d226568abe7328b5c2d4f6a011cc759dfa99144a521f0"
 
 DEPENDS += "${PYTHON_PN}-pbr-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
index 78ec431..6914cf9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
@@ -1,3 +1,20 @@
-require python-systemd.inc
-RDEPENDS_${PN} += "python3-syslog"
-inherit setuptools3
+SUMMARY = "Python interface for libsystemd"
+HOMEPAGE = "https://github.com/systemd/python-systemd"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c"
+
+PYPI_PACKAGE = "systemd-python"
+DEPENDS += "systemd (<=234)"
+RDEPENDS_${PN} += "systemd ${PYTHON_PN}-syslog ${PYTHON_PN}-logging python3-syslog"
+REQUIRED_DISTRO_FEATURES = "systemd"
+inherit pypi features_check setuptools3
+
+SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d"
+SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7"
+
+# allow for common patches for python- and python3-systemd
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-systemd:"
+
+SRC_URI += "file://endian.patch"
+
+SRC_URI_append_libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tabulate_0.8.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tabulate_0.8.7.bb
new file mode 100644
index 0000000..def35ff
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tabulate_0.8.7.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Pretty-print tabular data"
+HOMEPAGE = "https://github.com/astanin/python-tabulate"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fad5a39bdfe452b13775adda41023ba7"
+
+SRC_URI[md5sum] = "a766c6eecfe3765821909c4ddf082b3b"
+SRC_URI[sha256sum] = "db2723a20d04bcda8522165c73eea7c300eda74e0ce852d9022e0159d7895007"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator/run-ptest
new file mode 100644
index 0000000..5cec711
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb
index 14943a4..a83ee5e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-test-generator_0.1.2.bb
@@ -5,10 +5,24 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=041a2bff595d40ccb4b36356f89dab00"
 
+SRC_URI += " \
+	file://run-ptest \
+"
+
 SRC_URI[md5sum] = "6c69e73ba5b4b3ed62f7bcda071c64f1"
 SRC_URI[sha256sum] = "ad5925c814bfe79497b43df096e3bb52c166d1577f7aff160137301676232f4a"
 
-inherit pypi setuptools3
+inherit pypi setuptools3 ptest
+
+RDEPENDS_${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+	${PYTHON_PN}-mock \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
 
 DEPENDS += "python3-nose-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb
new file mode 100644
index 0000000..03ebd01
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-texttable_1.6.3.bb
@@ -0,0 +1,11 @@
+SUMMARY = "module for creating simple ASCII tables"
+HOMEPAGE = "https://github.com/foutaise/texttable/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7a97cdac2d9679ffdcfef3dc036d24f6"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "68e6b31d36f5c20221da7d5db3eca772"
+SRC_URI[sha256sum] = "ce0faf21aa77d806bbff22b107cc22cce68dc9438f97a2df32c93e9afa4ce436"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.48.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.49.0.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.48.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.49.0.bb
index 8314680..26eb107 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.48.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.49.0.bb
@@ -5,8 +5,8 @@
 LICENSE = "MIT & MPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=7ea57584e3f8bbde2ae3e1537551de25"
 
-SRC_URI[md5sum] = "d29c836d74d2f2ec6a10d052937f7371"
-SRC_URI[sha256sum] = "564d632ea2b9cb52979f7956e093e831c28d441c11751682f84c86fc46e4fd21"
+SRC_URI[md5sum] = "c2afde3f1d5aa108376fdd0f4b20821d"
+SRC_URI[sha256sum] = "faf9c671bd3fad5ebaeee366949d969dca2b2be32c872a7092a1e1a9048d105b"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-trafaret_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-trafaret_2.1.0.bb
similarity index 71%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-trafaret_2.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-trafaret_2.1.0.bb
index 4e81407..9660201 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-trafaret_2.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-trafaret_2.1.0.bb
@@ -3,7 +3,8 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=21ecc7aa8f699874e706fc1354903437"
 
-SRC_URI[sha256sum] = "61dfc25b574f70bfdf7ee3a808ec423061811c13a10b8d3c9e11ab539b96ab65"
+SRC_URI[sha256sum] = "72c342ede27fb34cd219b62855119380ae1c87006b6106be163c01159eb955ff"
+SRC_URI[md5sum] = "228675376012fb27dd7f70ab685e7766"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_4.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.0.4.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_4.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.0.4.bb
index edfb3ab..194193f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_4.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.0.4.bb
@@ -6,12 +6,11 @@
 
 PYPI_PACKAGE = "traitlets"
 
-SRC_URI[md5sum] = "3a4f263af65d3d79f1c279f0247077ef"
-SRC_URI[sha256sum] = "d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7"
+SRC_URI[md5sum] = "592dde72b6b706d09ea624cce9af3cf5"
+SRC_URI[sha256sum] = "86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b"
 
 RDEPENDS_${PN} = "\
     ${PYTHON_PN}-ipython-genutils \
-    ${PYTHON_PN}-six \
     ${PYTHON_PN}-decorator \
 "
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb
deleted file mode 100644
index 78f66a4..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.8.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Twitter for Python"
-DESCRIPTION = "Python module to support twitter API"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=8f702b489acb6863cec8b261a55931d8"
-
-SRC_URI[md5sum] = "8aeff278b7cefcd384c65929bc921e2c"
-SRC_URI[sha256sum] = "8abd828ba51a85a2b5bb7373715d6d3bb32d18ac624e3a4db02e4ef8ab48316b"
-
-PYPI_PACKAGE = "tweepy"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += "\
-    ${PYTHON_PN}-pip \
-    ${PYTHON_PN}-pysocks \
-    ${PYTHON_PN}-requests \
-    ${PYTHON_PN}-six \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.9.0.bb
new file mode 100644
index 0000000..01bbf83
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.9.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Twitter for Python"
+DESCRIPTION = "Python module to support twitter API"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[md5sum] = "b5bc640fa9f6baff6471c127aba1fec0"
+SRC_URI[sha256sum] = "bfd19a5c11f35f7f199c795f99d9cbf8a52eb33f0ecfb6c91ee10b601180f604"
+
+PYPI_PACKAGE = "tweepy"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+    ${PYTHON_PN}-pip \
+    ${PYTHON_PN}-pysocks \
+    ${PYTHON_PN}-requests \
+    ${PYTHON_PN}-six \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.7.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.7.4.3.bb
similarity index 66%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.7.4.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.7.4.3.bb
index 51e9eda..8ef15fa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.7.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typing-extensions_3.7.4.3.bb
@@ -5,8 +5,8 @@
 # The name on PyPi is slightly different.
 PYPI_PACKAGE = "typing_extensions"
 
-SRC_URI[md5sum] = "f2674282966dc088d10170c2347431cc"
-SRC_URI[sha256sum] = "79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae"
+SRC_URI[md5sum] = "5fcbfcb22e6f8c9bf23fb9f8e020f6ee"
+SRC_URI[sha256sum] = "99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_3.2.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_3.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_3.2.0.bb
index ef57b2a..e1d7d9d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_3.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_3.2.0.bb
@@ -4,8 +4,8 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=10fa10456417c0252bcb8a498e498ffe"
 
-SRC_URI[md5sum] = "875ac729018f3cac786d471422306fa8"
-SRC_URI[sha256sum] = "00bda1de275ed6fe81817902189c75dfd156b4fa29b44dc1f4620775d2f50cf7"
+SRC_URI[md5sum] = "a524264ef4069e18d742e32e90845a3f"
+SRC_URI[sha256sum] = "abb1996ba1c1d2faf5b1e38efa97da7f64e5373a31f705b96fe0587f5f778db4"
 
 inherit pypi ptest setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_0.5.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_0.5.5.bb
new file mode 100644
index 0000000..dbf84d4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-yamlloader_0.5.5.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Ordered YAML loader and dumper for PyYAML."
+HOMEPAGE = "https://github.com/Phynix/yamlloader"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6831ef36faa29329bce2420c5356f97e"
+
+SRC_URI[md5sum] = "2e0750ace81235f750c072833d79c4c3"
+SRC_URI[sha256sum] = "dcab5f16b39bb03d10dda4cd4f30c943675ec4c7771807fc67e7f1bb319bf4c8"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN}_class-target += "\
+    ${PYTHON_PN}-pyyaml \
+"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.49.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb
rename to meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.49.bb
index 9ca7a56..7fba21f 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.48.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-meh/python3-meh_0.49.bb
@@ -3,6 +3,7 @@
 exceptions."
 HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git"
 LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 inherit setuptools3
 
@@ -10,8 +11,7 @@
 
 SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \
 "
-SRCREV = "760f78a634ecf0e2380abcbd751bc233d29300ef"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SRCREV = "50c09e5c4c76757099d686c316b4bf42f72db71b"
 
 FILES_${PN} += "${datadir}/*"
 
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.17.4.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.0.2.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.17.4.bb
rename to meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.0.2.bb
index a804b0c..da73198 100644
--- a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_0.17.4.bb
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.0.2.bb
@@ -16,8 +16,8 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
 
-SRC_URI[md5sum] = "b65c03026bf2174e58e3e47a5e7e4825"
-SRC_URI[sha256sum] = "5b54b65a5434bb16432415743c0d154feee0c6d7a8a2fee208719c67d6d24c97"
+SRC_URI[md5sum] = "0f171e365e294554f8e7624ccf511067"
+SRC_URI[sha256sum] = "66d8ec82d30f2b95d8b4bd51659429066c2879d3f46292561f5fdbc7fed10f3d"
 
 inherit pypi setuptools3 update-alternatives
 
@@ -27,12 +27,6 @@
     ${PYTHON_PN}-six-native \
 "
 
-do_install_append() {
-    mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli
-
-    rm -f ${D}${bindir}/*.bat
-}
-
 RDEPENDS_${PN}_class-target += "\
     ${PYTHON_PN}-datetime \
     ${PYTHON_PN}-io \
@@ -46,10 +40,8 @@
     ${PYTHON_PN}-xml \
 "
 
-ALTERNATIVE_${PN} = "mof_compiler pywbemcli wbemcli"
+ALTERNATIVE_${PN} = "mof_compiler"
 ALTERNATIVE_TARGET[mof_compiler] = "${bindir}/mof_compiler"
-ALTERNATIVE_TARGET[pywbemcli] = "${bindir}/pywbemcli"
-ALTERNATIVE_TARGET[wbemcli] = "${bindir}/wbemcli"
 
 ALTERNATIVE_PRIORITY = "60"
 
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_0.7.1.bb b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_0.7.1.bb
new file mode 100644
index 0000000..05f7728
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_0.7.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "A set of tools using pywbem"
+DESCRIPTION = "A set of tools using pywbem to communicate with WBEM servers"
+HOMEPAGE = "https://pywbemtools.readthedocs.io/en/stable/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
+
+SRC_URI[md5sum] = "a789da735c04ddc08ba828cd8022243e"
+SRC_URI[sha256sum] = "d2fe776c78a740215142f4f033055093f2283fd9327440c59734716e51e19989"
+
+inherit pypi setuptools3
+
+DEPENDS += " \
+    ${PYTHON_PN}-pyyaml-native \
+    ${PYTHON_PN}-pywbem-native \
+    ${PYTHON_PN}-six-native \
+    ${PYTHON_PN}-click-native \
+"
+
+RDEPENDS_${PN}_class-target += "\
+    ${PYTHON_PN}-ply \
+    ${PYTHON_PN}-pyyaml \
+    ${PYTHON_PN}-six \
+    ${PYTHON_PN}-pywbem \
+    ${PYTHON_PN}-click \
+    ${PYTHON_PN}-requests \
+    ${PYTHON_PN}-prompt-toolkit \
+    ${PYTHON_PN}-mock \
+    ${PYTHON_PN}-packaging \
+    ${PYTHON_PN}-nocasedict \
+    ${PYTHON_PN}-yamlloader \
+    ${PYTHON_PN}-click-repl \
+    ${PYTHON_PN}-click-spinner \
+    ${PYTHON_PN}-asciitree \
+    ${PYTHON_PN}-tabulate \
+    ${PYTHON_PN}-pydicti \
+    ${PYTHON_PN}-nocaselist \
+    ${PYTHON_PN}-custom-inherit \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb b/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
index f5d5deb..e3e6858 100644
--- a/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
+++ b/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
@@ -19,20 +19,31 @@
 "
 
 RDEPENDS_packagegroup-meta-webserver-http = "\
-    nginx monkey hiawatha nostromo apache-websocket \
-    apache2 sthttpd \
+    apache-websocket \
+    apache2 \
     ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "cherokee", "", d)} \
-    "
+    hiawatha \
+    monkey \
+    nginx \
+    nginx \
+    nostromo \
+    sthttpd \
+"
 
 RDEPENDS_packagegroup-meta-webserver-php = "\
-    phpmyadmin xdebug \
-    "
+    phpmyadmin \
+    xdebug \
+"
 
 RDEPENDS_packagegroup-meta-webserver-support = "\
-    spawn-fcgi fcgi \
-    "
+    spawn-fcgi \
+    fcgi \
+"
 
 RDEPENDS_packagegroup-meta-webserver-webadmin = "\
-    netdata webmin \
-    "
+    cockpit \
+    webmin \
+    netdata \
+"
+
 EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.43.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.46.bb
similarity index 98%
rename from meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.43.bb
rename to meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.46.bb
index a7083d8..197cb83 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.43.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.46.bb
@@ -26,8 +26,8 @@
            "
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3"
-SRC_URI[md5sum] = "791c986b1e70fe61eb44060aacc89a64"
-SRC_URI[sha256sum] = "a497652ab3fc81318cdc2a203090a999150d86461acff97c1065dc910fe10f43"
+SRC_URI[md5sum] = "7d661ea5e736dac5e2761d9f49fe8361"
+SRC_URI[sha256sum] = "740eddf6e1c641992b22359cabc66e6325868c3c5e2e3f98faf349b61ecf41ea"
 
 S = "${WORKDIR}/httpd-${PV}"
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.init b/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.init
index 40b2118..55446f0 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.init
+++ b/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.init
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/bin/monkey
+DAEMON=/usr/sbin/monkey
 NAME=monkey
 DESC="Monkey HTTP Server"
 OPTS="--daemon"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.service b/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.service
index f9aa57f..4f3b7be 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.service
+++ b/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/monkey.service
@@ -4,7 +4,7 @@
 
 [Service]
 Type=forking
-ExecStart=/usr/bin/monkey --daemon
+ExecStart=/usr/sbin/monkey --daemon
 PIDFile=/var/run/monkey.pid.2001
 TimeoutSec=10
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb b/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
index 289f069..698f860 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
@@ -39,6 +39,7 @@
 
 do_install_append() {
     rm -rf ${D}/run
+    rm -rf ${D}${localstatedir}/run
     install -Dm 0755 ${WORKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey
 
     if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
diff --git a/meta-openembedded/meta-xfce/conf/layer.conf b/meta-openembedded/meta-xfce/conf/layer.conf
index 199c69e..7e4bb17 100644
--- a/meta-openembedded/meta-xfce/conf/layer.conf
+++ b/meta-openembedded/meta-xfce/conf/layer.conf
@@ -20,3 +20,10 @@
 LAYERDEPENDS_xfce-layer += "networking-layer"
 
 LAYERSERIES_COMPAT_xfce-layer = "thud warrior zeus dunfell"
+
+SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\
+  openzone->gdk-pixbuf \
+  openzone->gtk+3 \
+  rodent-icon-theme->gdk-pixbuf \
+  rodent-icon-theme->gtk+3 \
+"
