meta-openembedded and poky: subtree updates

Squash of the following due to dependencies among them
and OpenBMC changes:

meta-openembedded: subtree update:d0748372d2..9201611135
meta-openembedded: subtree update:9201611135..17fd382f34
poky: subtree update:9052e5b32a..2e11d97b6c
poky: subtree update:2e11d97b6c..a8544811d7

The change log was too large for the jenkins plugin
to handle therefore it has been removed. Here is
the first and last commit of each subtree:

meta-openembedded:d0748372d2
      cppzmq: bump to version 4.6.0
meta-openembedded:17fd382f34
      mpv: Remove X11 dependency
poky:9052e5b32a
      package_ipk: Remove pointless comment to trigger rebuild
poky:a8544811d7
      pbzip2: Fix license warning

Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch b/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch
deleted file mode 100644
index 8964d6b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 9b39a985bcd6cd34f0820f3680f145d46c0e56bd Mon Sep 17 00:00:00 2001
-From: Titouan Christophe <titouan.christophe@railnova.eu>
-Date: Sun, 8 Dec 2019 01:55:59 +0100
-Subject: [PATCH] Allow avro C to be built on musl based systems.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The type `ssize_t` is defined in sys/types.h, and nowhere else
-in the musl standard C library, so it should be included for the
-compilation to succeed.
-
-This fixes several errors like:
-
-    In file included from src/generic.c:29:0:
-    src/generic.c: In function ‘avro_generic_value_new’:
-    src/avro_generic_internal.h:63:39:
-        error: ‘ssize_t’ undeclared (first use in this function);
-               did you mean ‘size_t’?
-
-Upstream-Status: Backport
-Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
----
- lang/c/src/avro_generic_internal.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lang/c/src/avro_generic_internal.h b/lang/c/src/avro_generic_internal.h
-index 709403c03..9843ed652 100644
---- a/lang/c/src/avro_generic_internal.h
-+++ b/lang/c/src/avro_generic_internal.h
-@@ -24,6 +24,8 @@ extern "C" {
- #define CLOSE_EXTERN
- #endif
- 
-+#include <sys/types.h>
-+
- #include "avro/generic.h"
- #include "avro/schema.h"
- #include "avro/value.h"
--- 
-2.24.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.2.bb
similarity index 76%
rename from meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb
rename to meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.2.bb
index 8954c98..0642179 100644
--- a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.9.2.bb
@@ -8,9 +8,8 @@
 DEPENDS = "jansson zlib xz"
 
 BRANCH = "branch-1.9"
-SRCREV = "89218262cde62e98fcb3778b86cd3f03056c54f3"
+SRCREV = "bf20128ca6138a830b2ea13e0490f3df6b035639"
 SRC_URI = "git://github.com/apache/avro;branch=${BRANCH} \
-           file://0001-Allow-avro-C-to-be-built-on-musl-based-systems.patch;patchdir=../../ \
            file://0001-cmake-Use-GNUInstallDirs-instead-of-hard-coded-paths.patch;patchdir=../../ \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb
index f4ea173..407de21 100644
--- a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_8.0.4.bb
@@ -28,8 +28,6 @@
 
 S = "${WORKDIR}/git"
 
-ARM_INSTRUCTION_SET = "arm"
-
 inherit autotools pkgconfig
 
 EXTRA_OECONF += "--enable-cpluscplus"
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch
new file mode 100644
index 0000000..8f15f84
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch
@@ -0,0 +1,27 @@
+From f2f1e134bf5d9d0789942848e03006af8d926cf8 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Tue, 17 Mar 2020 12:53:35 +0800
+Subject: [PATCH] fix configure error : mv libcares.pc.cmakein to
+ libcares.pc.cmake
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3a5878d..c2e5740 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -563,7 +563,7 @@ IF (CARES_STATIC)
+ ENDIF()
+ 
+ # Write ares_config.h configuration file.  This is used only for the build.
+-CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
++CONFIGURE_FILE (libcares.pc.cmake ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
+ 
+ 
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
new file mode 100644
index 0000000..0eb7e4b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
@@ -0,0 +1,84 @@
+From 12414304245cce6ef0e8b9547949be5109845353 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 13:33:33 +0800
+Subject: [PATCH] cmake: Install libcares.pc
+
+Prepare and install libcares.pc file during cmake build, so libraries
+using pkg-config to find libcares will not fail.
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+
+update to 1.14.0, fix patch warning
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ CMakeLists.txt | 28 +++++++++++++++++++++++-----
+ 1 file changed, 23 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fd123e1..3a5878d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -214,22 +214,25 @@ ADD_DEFINITIONS(${SYSFLAGS})
+ 
+ 
+ # Tell C-Ares about libraries to depend on
++# Also pass these libraries to pkg-config file
++SET(CARES_PRIVATE_LIBS_LIST)
+ IF (HAVE_LIBRESOLV)
+-	LIST (APPEND CARES_DEPENDENT_LIBS resolv)
++	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lresolv")
+ ENDIF ()
+ IF (HAVE_LIBNSL)
+-	LIST (APPEND CARES_DEPENDENT_LIBS nsl)
++	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lnsl")
+ ENDIF ()
+ IF (HAVE_LIBSOCKET)
+-	LIST (APPEND CARES_DEPENDENT_LIBS socket)
++	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lsocket")
+ ENDIF ()
+ IF (HAVE_LIBRT)
+-	LIST (APPEND CARES_DEPENDENT_LIBS rt)
++	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lrt")
+ ENDIF ()
+ IF (WIN32)
+-	LIST (APPEND CARES_DEPENDENT_LIBS ws2_32 Advapi32)
++	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32")
+ ENDIF ()
+ 
++string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}")
+ 
+ # When checking for symbols, we need to make sure we set the proper
+ # headers, libraries, and definitions for the detection to work properly
+@@ -554,6 +557,15 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
+ # Write ares_config.h configuration file.  This is used only for the build.
+ CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h)
+ 
++# Pass required CFLAGS to pkg-config in case of static library
++IF (CARES_STATIC)
++       SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
++ENDIF()
++
++# Write ares_config.h configuration file.  This is used only for the build.
++CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
++
++
+ 
+ # TRANSFORM_MAKEFILE_INC
+ #
+@@ -728,6 +740,12 @@ IF (CARES_INSTALL)
+ 	INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" COMPONENT Devel DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+ ENDIF ()
+ 
++# pkg-config file
++IF (CARES_INSTALL)
++       SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++       INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR})
++ENDIF ()
++
+ # Legacy chain-building variables (provided for compatibility with old code).
+ # Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares).
+ SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND")
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb
new file mode 100644
index 0000000..e235b9b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/c-ares/c-ares_1.16.0.bb
@@ -0,0 +1,27 @@
+# Copyright (c) 2012-2014 LG Electronics, Inc.
+SUMMARY = "c-ares is a C library that resolves names asynchronously."
+HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
+
+PV = "1.16.0+gitr${SRCPV}"
+
+SRC_URI = "\
+    git://github.com/c-ares/c-ares.git \
+    file://cmake-install-libcares.pc.patch \
+    file://0001-fix-configure-error-mv-libcares.pc.cmakein-to-libcar.patch \
+"
+SRCREV = "077a587dccbe2f0d8a1987fbd3525333705c2249"
+
+UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGES =+ "${PN}-utils"
+
+FILES_${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
index da1a2a3..22b9d0b 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
@@ -12,6 +12,9 @@
 
 SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz \
            file://pessimizing-move.patch"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/frame/trunk"
+
 SRC_URI[md5sum] = "02baa941091c5d198cd1623b3ad36e68"
 SRC_URI[sha256sum] = "cfb9ab52cdccd926f1822a457264d0014c7eb9f4600a72626063dd073b26256f"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
index 9362a5c..b9858d2 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -23,6 +23,9 @@
            file://fix-indentation-for-gcc6.patch \
            file://0001-libgeis-Compare-the-first-character-of-string-to-nul.patch \
            "
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/geis/trunk"
+
 SRC_URI[md5sum] = "2ff9d76a3ea5794516bb02c9d1924faf"
 SRC_URI[sha256sum] = "8a60f5683852094038904e690d23cc5a90a980fc52da67f0f28890baa25c70eb"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
index 22fd0f4..e1d3777 100644
--- a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
@@ -13,6 +13,9 @@
 DEPENDS = "frame"
 CXXFLAGS_append_toolchain-clang = " -Wno-pessimizing-move"
 SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.bz2"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/grail/trunk"
+
 SRC_URI[md5sum] = "0df1b3ec6167920f310e2effe6e2ad44"
 SRC_URI[sha256sum] = "5eed1f650f042481daa3a2de5e7d43261fe343b2a1b1e240f3b7fc26572c9df3"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
index 5232e2a..e108e02 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
@@ -54,7 +54,7 @@
 ===================================================================
 --- cpprest.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
 +++ cpprest/Release/tests/functional/websockets/client/authentication_tests.cpp
-@@ -93,6 +93,7 @@
+@@ -93,6 +93,7 @@ SUITE(authentication_tests)
          return false;
      }
  
@@ -62,46 +62,15 @@
      TEST(ssl_test)
      {
          websocket_client client;
-@@ -127,6 +128,7 @@
+@@ -127,6 +128,7 @@ SUITE(authentication_tests)
              throw;
          }
      }
 +    */
  
- // These tests are specific to our websocketpp based implementation.
- #if !defined(__cplusplus_winrt)
-@@ -159,12 +161,14 @@
-         }
-     }
- 
-+    /*
-     // Test specifically for server SignalR team hit interesting cases with.
-     TEST(sni_with_older_server_test)
-     {
-         websocket_client client;
-         sni_test_impl(client);
-     }
-+    */
- 
-     // WinRT doesn't expose option for disabling.
-     // No stable server is available to reliably test this.
-@@ -194,6 +198,7 @@
-         }
-     }
- 
-+    /*
-     // Winrt doesn't allow explicitly setting server host for SNI.
-     TEST(sni_explicit_hostname)
-     {
-@@ -204,6 +209,7 @@
-         websocket_client client(config);
-         sni_test_impl(client);
-     }
-+    */
- 
      void handshake_error_test_impl(const ::utility::string_t& host)
      {
-@@ -225,11 +231,11 @@
+@@ -148,11 +150,11 @@ SUITE(authentication_tests)
          }
      }
  
@@ -114,13 +83,13 @@
 -    TEST(cert_expired) { handshake_error_test_impl(U("wss://expired.badssl.com/")); }
 +    //TEST(cert_expired) { handshake_error_test_impl(U("wss://expired.badssl.com/")); }
  
- #endif
+ } // SUITE(authentication_tests)
  
 Index: cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
 ===================================================================
 --- cpprest.orig/Release/tests/functional/http/client/connections_and_errors.cpp
 +++ cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
-@@ -406,6 +406,7 @@
+@@ -408,6 +408,7 @@
      }
  #endif
  
@@ -128,7 +97,7 @@
      // Try to connect to a server on a closed port and cancel the operation.
      TEST_FIXTURE(uri_address, cancel_bad_port)
      {
-@@ -437,6 +438,7 @@
+@@ -439,6 +440,7 @@
  
          VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled);
      }
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb
rename to meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb
index 11c8eab..dee5ae2 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.15.bb
@@ -11,8 +11,8 @@
            file://disable-float-tests.patch \
            file://disable-outside-tests.patch "
 
-# tag 2.10.14
-SRCREV= "6f602bee67b088a299d7901534af3bce6334ab38"
+# tag 2.10.15
+SRCREV= "b94bc32ff84e815ba44c567f6fe4af5f5f6b3048"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
deleted file mode 100644
index 8d9577d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a43a3327ccd4b06a3bcf0c87d518a97c6b39ac02 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Sat, 6 Aug 2016 02:09:53 +0900
-Subject: [PATCH] daemontools: Fix a warning
-
-To fix the warning as following:
-
-WARNING: daemontools-native-0.76-r0 do_populate_sysroot: File '/build-poky/tmp/sysroots/x86_64-linux/usr/bin/chkshsgr' from daemontools-native was already stripped, this will prevent future debugging!
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- src/conf-ld | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/conf-ld b/src/conf-ld
-index 59a0de7..1d0518a 100644
---- a/src/conf-ld
-+++ b/src/conf-ld
-@@ -1,3 +1,3 @@
--gcc -s
-+gcc
- 
- This will be used to link .o files into an executable.
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
index f164c2d..9c07d75 100644
--- a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
@@ -30,7 +30,7 @@
  hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
  tryshsgr.c warn-shsgr
 -	./chkshsgr || ( cat warn-shsgr; exit 1 )
-+	chkshsgr || ( cat warn-shsgr; exit 1 )
++	echo "Warning: We can not run test on cross target. - ignoring ./chkshsgr || ( cat warn-shsgr; exit 1 )"
  	./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
  
  haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
@@ -39,7 +39,7 @@
  readproctitle rts.tests setlock setuidgid softlimit supervise svc \
  svok svscan svscanboot svstat tai64n tai64nlocal
 -	env - /bin/sh rts.tests 2>&1 | cat -v > rts
-+	echo "Warning: We can not run test on cross target."
++	echo "Warning: We can not run test on cross target. - ignoring env - /bin/sh rts.tests 2>&1 | cat -v > rts"
  
  scan_ulong.o: compile scan.h scan_ulong.c
  	./compile scan_ulong.c
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
index 35251cb..f0c5f7d 100644
--- a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -16,21 +16,16 @@
 LICENSE = "PD"
 
 SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \
-           file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
-           file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff "
-
-SRC_URI_append_class-target = "file://cross-compile.patch \
-                               file://0001-daemontools-Fix-QA-Issue.patch "
-
-SRC_URI_append_class-native = "file://0001-daemontools-native-Fix-a-warning.patch "
+    file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
+    file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff \
+    file://cross-compile.patch \
+    file://0001-daemontools-Fix-QA-Issue.patch \
+"
 
 SRC_URI[md5sum] = "1871af2453d6e464034968a0fbcb2bfc"
 SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710df4c1f"
 
-S = "${WORKDIR}/admin/${BPN}-${PV}"
-
-DEPENDS += "daemontools-native"
-DEPENDS_class-native = ""
+S = "${WORKDIR}/admin/${BP}"
 
 do_compile() {
     ./package/compile
@@ -40,12 +35,10 @@
     install -d ${D}/${bindir}
 }
 
-do_install_append_class-native() {
-    install -m 755 ${S}/compile/chkshsgr ${D}/${bindir}
-}
-
 do_install_append_class-target() {
     install -m755 ${S}/command/* ${D}/${bindir}
 }
 
-BBCLASSEXTEND = "native"
+inherit update-alternatives
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN} = "svc svok"
diff --git a/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
deleted file mode 100644
index 13f20eb..0000000
--- a/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "Miscellaneous utilities specific to Debian"
-SUMMARY_${PN}-cron = "Cron scripts to control automatic debsum checking"
-DESCRIPTION = "A tool for verification of installed package files against \
-MD5 checksums debsums can verify the integrity of installed package files \
-against MD5 checksums installed by the package, or generated from a .deb \
-archive."
-DESCRIPTION_${PN}-cron = "Cron scripts to control automatic system integrity \
-checking via debsums."
-SECTION = "base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=770d751553e6559e9eaefd2e11ccf7e9"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20170530T212108Z/pool/main/d/debsums/debsums_2.2.2.tar.xz"
-SRC_URI[md5sum] = "82b0710855a7e5212d4358163a269e79"
-SRC_URI[sha256sum] = "aa61896f93a6bbfe0161c21dcd67529ae8e1ec8c3ccf244523c52c4ad8253d97"
-
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
-
-inherit perlnative gettext
-
-do_install() {
-        install -d ${D}/${sysconfdir}/cron.daily ${D}/${sysconfdir}/cron.weekly
-        install -d ${D}/${sysconfdir}/cron.monthly ${D}${sbindir} ${D}${bindir}
-        install -d ${D}${mandir}/man1 ${D}${mandir}/man8
-        install -m 0755 debsums ${D}${bindir}/
-        install -m 0755 rdebsums ${D}${bindir}/
-        install -m 0755 debsums_init ${D}${sbindir}
-        install -m 0644 man/debsums.1 ${D}${mandir}/man1/
-        install -m 0644 man/rdebsums.1 ${D}${mandir}/man1/
-        install -m 0644 man/debsums_init.8 ${D}${mandir}/man8/
-        install -m 0644 debian/cron.daily \
-                ${D}/${sysconfdir}/cron.daily/debsums
-        install -m 0644 debian/cron.weekly \
-                ${D}/${sysconfdir}/cron.weekly/debsums
-        install -m 0644 debian/cron.monthly \
-                ${D}/${sysconfdir}/cron.monthly/debsums
-        # Must exist, defaults to empty.
-        touch ${D}/${sysconfdir}/debsums-ignore
-}
-
-PACKAGES =+ "${PN}-cron"
-
-RDEPENDS_${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \
-                  perl-module-constant perl-module-digest-md5 \
-                  perl-module-errno perl-module-fcntl \
-                  perl-module-file-basename perl-module-file-copy \
-                  perl-module-file-find perl-module-file-glob \
-                  perl-module-file-path perl-module-file-spec \
-                  perl-module-file-temp perl-module-getopt-long \
-                  perl-module-posix"
-
-FILES_${PN}-cron = "${sysconfdir}/cron.*"
diff --git a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
index 8eb7157..2e37dd7 100644
--- a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.4.bb
@@ -19,4 +19,4 @@
     oe_runmake 'DESTDIR=${D}' install
 }
 
-RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin"
+RDEPENDS_${PN} += "python3-core python3-misc python3-resource python3-shell python3-unixadmin"
diff --git a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
index 6b23bbf..8ca5740 100644
--- a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
@@ -6,7 +6,7 @@
 DEPENDS = "jpeg libexif"
 
 SRC_URI = "git://github.com/mattes/epeg.git"
-SRCREV = "337f55346425fbf2d283e794b702318ef2a74bcb"
+SRCREV = "9a175cd67eaa61fe45413d8da82da72936567047"
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
index 0d033f3..09344cf 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
@@ -2,7 +2,7 @@
 
 DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
 
-inherit features_check binconfig lib_package gtk-icon-cache mime
+inherit features_check binconfig lib_package gtk-icon-cache mime mime-xdg
 REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI += " \
diff --git a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.2.0.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb
rename to meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.2.0.bb
index c35c77b..05dc94a 100644
--- a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_6.2.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b"
 
 SRC_URI += "git://github.com/fmtlib/fmt"
-SRCREV = "7512a55aa3ae309587ca89668ef9ec4074a51a1f"
+SRCREV = "9bdd1596cef1b57b9556f8bef32dc4a32322ef3e"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
index 373c497..7cafbb7 100644
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -10,11 +10,12 @@
 
 inherit pkgconfig cmake gitpkgv
 
+PE = "1"
 PV = "2.0.0+gitr${SRCPV}"
 PKGV = "${GITPKGVTAG}"
 
-# 2.0.0-rc4
-SRCREV = "e21b72c95f857817b4b32b5ef5406355c005a9e8"
+# 2.0.0 release
+SRCREV = "5ab2bed8749747b8e4b2ed431fd102bc726be684"
 SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
     file://winpr-makecert-Build-with-install-RPATH.patch \
 "
@@ -39,7 +40,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"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native"
 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/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
deleted file mode 100644
index c377b37..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 85c7694a5cf34597909bdd1ca6931b0f99904c2e Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 19 Jun 2018 00:40:49 -0700
-Subject: [PATCH] annotate.c/gdft.c: Replace strncpy with memccpy to fix
- -Wstringop-truncation.
-
-Fixed for gcc8:
-git/src/gdft.c:1699:2: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
-
-Upstream-Status: Submitted [https://github.com/libgd/libgd/pull/442]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- src/annotate.c | 2 +-
- src/gdft.c     | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/annotate.c b/src/annotate.c
-index 00aaf49..17df813 100644
---- a/src/annotate.c
-+++ b/src/annotate.c
-@@ -104,7 +104,7 @@ int main(int argc, char *argv[])
- 					fprintf(stderr, "Font maximum length is 1024, %d given\n", font_len);
- 					goto badLine;
- 				}
--				strncpy(font, st, font_len);
-+				memcpy(font, st, font_len);
- 			}
- 		} else if(!strcmp(st, "align")) {
- 			char *st = strtok(0, " \t\r\n");
-diff --git a/src/gdft.c b/src/gdft.c
-index 9fa8295..81dbe41 100644
---- a/src/gdft.c
-+++ b/src/gdft.c
-@@ -1696,7 +1696,7 @@ static char * font_path(char **fontpath, char *name_list)
- 		gdFree(path);
- 		return "could not alloc full list of fonts";
- 	}
--	strncpy(fontlist, name_list, name_list_len);
-+	memcpy(fontlist, name_list, name_list_len);
- 	fontlist[name_list_len] = 0;
- 
- 	/*
--- 
-2.10.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
deleted file mode 100644
index 25924d1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 4b1e18a00ce7c4b7e6919c3b3109a034393b805a Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sat, 14 Jul 2018 13:54:08 -0400
-Subject: [PATCH] bmp: check return value in gdImageBmpPtr
-
-Closes #447.
-
-(cherry picked from commit ac16bdf2d41724b5a65255d4c28fb0ec46bc42f5)
-
-Upstream-Status: Backport [https://github.com/libgd/libgd/commit/4b1e18a00ce7c4b7e6919c3b3109a034393b805a]
-CVE: CVE-2018-1000222
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- src/gd_bmp.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/src/gd_bmp.c b/src/gd_bmp.c
-index ccafdcd..d625da1 100644
---- a/src/gd_bmp.c
-+++ b/src/gd_bmp.c
-@@ -48,6 +48,8 @@ static int bmp_read_4bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp
- static int bmp_read_8bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp_hdr_t *header);
- static int bmp_read_rle(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info);
- 
-+static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression);
-+
- #define BMP_DEBUG(s)
- 
- static int gdBMPPutWord(gdIOCtx *out, int w)
-@@ -88,8 +90,10 @@ BGD_DECLARE(void *) gdImageBmpPtr(gdImagePtr im, int *size, int compression)
- 	void *rv;
- 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- 	if (out == NULL) return NULL;
--	gdImageBmpCtx(im, out, compression);
--	rv = gdDPExtractData(out, size);
-+	if (!_gdImageBmpCtx(im, out, compression))
-+		rv = gdDPExtractData(out, size);
-+	else
-+		rv = NULL;
- 	out->gd_free(out);
- 	return rv;
- }
-@@ -142,6 +146,11 @@ BGD_DECLARE(void) gdImageBmp(gdImagePtr im, FILE *outFile, int compression)
- 		compression - whether to apply RLE or not.
- */
- BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
-+{
-+	_gdImageBmpCtx(im, out, compression);
-+}
-+
-+static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
- {
- 	int bitmap_size = 0, info_size, total_size, padding;
- 	int i, row, xpos, pixel;
-@@ -149,6 +158,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
- 	unsigned char *uncompressed_row = NULL, *uncompressed_row_start = NULL;
- 	FILE *tmpfile_for_compression = NULL;
- 	gdIOCtxPtr out_original = NULL;
-+	int ret = 1;
- 
- 	/* No compression if its true colour or we don't support seek */
- 	if (im->trueColor) {
-@@ -326,6 +336,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
- 		out_original = NULL;
- 	}
- 
-+	ret = 0;
- cleanup:
- 	if (tmpfile_for_compression) {
- #ifdef _WIN32
-@@ -339,7 +350,7 @@ cleanup:
- 	if (out_original) {
- 		out_original->gd_free(out_original);
- 	}
--	return;
-+	return ret;
- }
- 
- static int compress_row(unsigned char *row, int length)
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch
deleted file mode 100644
index 9beb23e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2019-6978.patch
+++ /dev/null
@@ -1,299 +0,0 @@
-From 553702980ae89c83f2d6e254d62cf82e204956d0 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Thu, 17 Jan 2019 11:54:55 +0100
-Subject: [PATCH] Fix #492: Potential double-free in gdImage*Ptr()
-
-Whenever `gdImage*Ptr()` calls `gdImage*Ctx()` and the latter fails, we
-must not call `gdDPExtractData()`; otherwise a double-free would
-happen.  Since `gdImage*Ctx()` are void functions, and we can't change
-that for BC reasons, we're introducing static helpers which are used
-internally.
-
-We're adding a regression test for `gdImageJpegPtr()`, but not for
-`gdImageGifPtr()` and `gdImageWbmpPtr()` since we don't know how to
-trigger failure of the respective `gdImage*Ctx()` calls.
-
-This potential security issue has been reported by Solmaz Salimi (aka.
-Rooney).
----
- src/gd_gif_out.c                  | 18 +++++++++++++++---
- src/gd_jpeg.c                     | 20 ++++++++++++++++----
- src/gd_wbmp.c                     | 21 ++++++++++++++++++---
- tests/jpeg/.gitignore             |  1 +
- tests/jpeg/CMakeLists.txt         |  1 +
- tests/jpeg/Makemodule.am          |  3 ++-
- tests/jpeg/jpeg_ptr_double_free.c | 31 +++++++++++++++++++++++++++++++
- 7 files changed, 84 insertions(+), 11 deletions(-)
- create mode 100644 tests/jpeg/jpeg_ptr_double_free.c
-
-Upstream-Status: Backport [https://github.com/libgd/libgd/commit/553702980ae89c83f2d6e254d62cf82e204956d0]
-CVE: CVE-2019-6978
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
-
-diff --git a/src/gd_gif_out.c b/src/gd_gif_out.c
-index 298a581..d5a9534 100644
---- a/src/gd_gif_out.c
-+++ b/src/gd_gif_out.c
-@@ -99,6 +99,7 @@ static void char_init(GifCtx *ctx);
- static void char_out(int c, GifCtx *ctx);
- static void flush_char(GifCtx *ctx);
- 
-+static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out);
- 
- 
- 
-@@ -131,8 +132,11 @@ BGD_DECLARE(void *) gdImageGifPtr(gdImagePtr im, int *size)
- 	void *rv;
- 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- 	if (out == NULL) return NULL;
--	gdImageGifCtx(im, out);
--	rv = gdDPExtractData(out, size);
-+	if (!_gdImageGifCtx(im, out)) {
-+		rv = gdDPExtractData(out, size);
-+	} else {
-+		rv = NULL;
-+	}
- 	out->gd_free(out);
- 	return rv;
- }
-@@ -220,6 +224,12 @@ BGD_DECLARE(void) gdImageGif(gdImagePtr im, FILE *outFile)
- 
- */
- BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
-+{
-+	_gdImageGifCtx(im, out);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- {
- 	gdImagePtr pim = 0, tim = im;
- 	int interlace, BitsPerPixel;
-@@ -231,7 +241,7 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- 		based temporary image. */
- 		pim = gdImageCreatePaletteFromTrueColor(im, 1, 256);
- 		if(!pim) {
--			return;
-+			return 1;
- 		}
- 		tim = pim;
- 	}
-@@ -247,6 +257,8 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
- 		/* Destroy palette based temporary image. */
- 		gdImageDestroy(	pim);
- 	}
-+
-+	return 0;
- }
- 
- 
-diff --git a/src/gd_jpeg.c b/src/gd_jpeg.c
-index fc05842..96ef430 100644
---- a/src/gd_jpeg.c
-+++ b/src/gd_jpeg.c
-@@ -117,6 +117,8 @@ static void fatal_jpeg_error(j_common_ptr cinfo)
- 	exit(99);
- }
- 
-+static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality);
-+
- /*
-  * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality
-  * QUALITY.  If QUALITY is in the range 0-100, increasing values
-@@ -231,8 +233,11 @@ BGD_DECLARE(void *) gdImageJpegPtr(gdImagePtr im, int *size, int quality)
- 	void *rv;
- 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- 	if (out == NULL) return NULL;
--	gdImageJpegCtx(im, out, quality);
--	rv = gdDPExtractData(out, size);
-+	if (!_gdImageJpegCtx(im, out, quality)) {
-+		rv = gdDPExtractData(out, size);
-+	} else {
-+		rv = NULL;
-+	}
- 	out->gd_free(out);
- 	return rv;
- }
-@@ -253,6 +258,12 @@ void jpeg_gdIOCtx_dest(j_compress_ptr cinfo, gdIOCtx *outfile);
- 
- */
- BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
-+{
-+	_gdImageJpegCtx(im, outfile, quality);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- {
- 	struct jpeg_compress_struct cinfo;
- 	struct jpeg_error_mgr jerr;
-@@ -287,7 +298,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- 		if(row) {
- 			gdFree(row);
- 		}
--		return;
-+		return 1;
- 	}
- 
- 	cinfo.err->emit_message = jpeg_emit_message;
-@@ -328,7 +339,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- 	if(row == 0) {
- 		gd_error("gd-jpeg: error: unable to allocate JPEG row structure: gdCalloc returns NULL\n");
- 		jpeg_destroy_compress(&cinfo);
--		return;
-+		return 1;
- 	}
- 
- 	rowptr[0] = row;
-@@ -405,6 +416,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
- 	jpeg_finish_compress(&cinfo);
- 	jpeg_destroy_compress(&cinfo);
- 	gdFree(row);
-+	return 0;
- }
- 
- 
-diff --git a/src/gd_wbmp.c b/src/gd_wbmp.c
-index f19a1c9..a49bdbe 100644
---- a/src/gd_wbmp.c
-+++ b/src/gd_wbmp.c
-@@ -88,6 +88,8 @@ int gd_getin(void *in)
- 	return (gdGetC((gdIOCtx *)in));
- }
- 
-+static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out);
-+
- /*
- 	Function: gdImageWBMPCtx
- 
-@@ -100,6 +102,12 @@ int gd_getin(void *in)
- 		out   - the stream where to write
- */
- BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
-+{
-+	_gdImageWBMPCtx(image, fg, out);
-+}
-+
-+/* returns 0 on success, 1 on failure */
-+static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
- {
- 	int x, y, pos;
- 	Wbmp *wbmp;
-@@ -107,7 +115,7 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
- 	/* create the WBMP */
- 	if((wbmp = createwbmp(gdImageSX(image), gdImageSY(image), WBMP_WHITE)) == NULL) {
- 		gd_error("Could not create WBMP\n");
--		return;
-+		return 1;
- 	}
- 
- 	/* fill up the WBMP structure */
-@@ -123,11 +131,15 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
- 
- 	/* write the WBMP to a gd file descriptor */
- 	if(writewbmp(wbmp, &gd_putout, out)) {
-+		freewbmp(wbmp);
- 		gd_error("Could not save WBMP\n");
-+		return 1;
- 	}
- 
- 	/* des submitted this bugfix: gdFree the memory. */
- 	freewbmp(wbmp);
-+
-+	return 0;
- }
- 
- /*
-@@ -271,8 +283,11 @@ BGD_DECLARE(void *) gdImageWBMPPtr(gdImagePtr im, int *size, int fg)
- 	void *rv;
- 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- 	if (out == NULL) return NULL;
--	gdImageWBMPCtx(im, fg, out);
--	rv = gdDPExtractData(out, size);
-+	if (!_gdImageWBMPCtx(im, fg, out)) {
-+		rv = gdDPExtractData(out, size);
-+	} else {
-+		rv = NULL;
-+	}
- 	out->gd_free(out);
- 	return rv;
- }
-diff --git a/tests/jpeg/.gitignore b/tests/jpeg/.gitignore
-index c28aa87..13bcf04 100644
---- a/tests/jpeg/.gitignore
-+++ b/tests/jpeg/.gitignore
-@@ -3,5 +3,6 @@
- /jpeg_empty_file
- /jpeg_im2im
- /jpeg_null
-+/jpeg_ptr_double_free
- /jpeg_read
- /jpeg_resolution
-diff --git a/tests/jpeg/CMakeLists.txt b/tests/jpeg/CMakeLists.txt
-index 19964b0..a8d8162 100644
---- a/tests/jpeg/CMakeLists.txt
-+++ b/tests/jpeg/CMakeLists.txt
-@@ -2,6 +2,7 @@ IF(JPEG_FOUND)
- LIST(APPEND TESTS_FILES
- 	jpeg_empty_file
- 	jpeg_im2im
-+	jpeg_ptr_double_free
- 	jpeg_null
- )
- 
-diff --git a/tests/jpeg/Makemodule.am b/tests/jpeg/Makemodule.am
-index 7e5d317..b89e169 100644
---- a/tests/jpeg/Makemodule.am
-+++ b/tests/jpeg/Makemodule.am
-@@ -2,7 +2,8 @@ if HAVE_LIBJPEG
- libgd_test_programs += \
- 	jpeg/jpeg_empty_file \
- 	jpeg/jpeg_im2im \
--	jpeg/jpeg_null
-+	jpeg/jpeg_null \
-+	jpeg/jpeg_ptr_double_free
- 
- if HAVE_LIBPNG
- libgd_test_programs += \
-diff --git a/tests/jpeg/jpeg_ptr_double_free.c b/tests/jpeg/jpeg_ptr_double_free.c
-new file mode 100644
-index 0000000..df5a510
---- /dev/null
-+++ b/tests/jpeg/jpeg_ptr_double_free.c
-@@ -0,0 +1,31 @@
-+/**
-+ * Test that failure to convert to JPEG returns NULL
-+ *
-+ * We are creating an image, set its width to zero, and pass this image to
-+ * `gdImageJpegPtr()` which is supposed to fail, and as such should return NULL.
-+ *
-+ * See also <https://github.com/libgd/libgd/issues/381>
-+ */
-+
-+
-+#include "gd.h"
-+#include "gdtest.h"
-+
-+
-+int main()
-+{
-+    gdImagePtr src, dst;
-+    int size;
-+
-+    src = gdImageCreateTrueColor(1, 10);
-+    gdTestAssert(src != NULL);
-+
-+    src->sx = 0; /* this hack forces gdImageJpegPtr() to fail */
-+
-+    dst = gdImageJpegPtr(src, &size, 0);
-+    gdTestAssert(dst == NULL);
-+
-+    gdImageDestroy(src);
-+
-+    return gdNumFailures();
-+}
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.0.bb
similarity index 78%
rename from meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
rename to meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.0.bb
index 35f9bb2..eec8a05 100644
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.3.0.bb
@@ -5,21 +5,18 @@
 This is particularly useful in Web applications, where PNG and JPEG are two \
 of the formats accepted for inline images by most browsers. Note that gd is not \
 a paint program."
-HOMEPAGE = "http://libgd.bitbucket.org/"
+HOMEPAGE = "http://libgd.github.io/"
 
 SECTION = "libs"
 LICENSE = "GD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8e5bc8627b9494741c905d65238c66b7"
 
 DEPENDS = "freetype libpng jpeg zlib tiff"
 
-SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
-           file://0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch \
-           file://CVE-2018-1000222.patch \
-           file://CVE-2019-6978.patch \
+SRC_URI = "git://github.com/libgd/libgd.git;branch=master \
           "
 
-SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
+SRCREV = "b079fa06223c3ab862c8f0eea58a968727971988"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb b/meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
new file mode 100644
index 0000000..118e3c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
@@ -0,0 +1,16 @@
+SUMMARY = "skeleton main.c generator"
+DESCRIPTION = "Gengetopt is a tool to write command line option parsing code for C programs."
+SECTION = "utils"
+HOMEPAGE = "https://www.gnu.org/software/gengetopt/gengetopt.html"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff95bfe019feaf92f524b73dd79e76eb"
+
+SRC_URI = "${GNU_MIRROR}/gengetopt/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "ea165d618640dbdecb42ae4491337965"
+SRC_URI[sha256sum] = "b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac"
+
+inherit autotools texinfo
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
index 70eef72..9a83328 100644
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
@@ -6,8 +6,6 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
 
-DEPENDS = "libunwind"
-
 SRC_URI = " \
     git://github.com/google/glog.git;nobranch=1 \
     file://0001-Rework-CMake-glog-VERSION-management.patch \
@@ -21,6 +19,9 @@
 
 inherit cmake
 
-RDEPENDS_${PN} += "libunwind"
+PACKAGECONFIG ?= "shared unwind"
+PACKAGECONFIG_remove_riscv64 = "unwind"
+PACKAGECONFIG_remove_riscv32 = "unwind"
 
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+PACKAGECONFIG[unwind] = "-DWITH_UNWIND=ON,-DWITH_UNWIND=OFF,libunwind,libunwind"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
index 49d5c21..cb4ead3 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -6,26 +6,12 @@
 Patch from https://github.com/gperftools/gperftools/pull/765/
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
- configure.ac                 | 1 +
- src/malloc_hook_mmap_linux.h | 8 ++++++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
+ src/malloc_hook_mmap_linux.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
 
-diff --git a/configure.ac b/configure.ac
-index 497103e..f9efc3e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,6 +188,7 @@ AC_HEADER_STDC
- AC_CHECK_TYPES([__int64])       # defined in some windows platforms
- AC_CHECK_TYPES([struct mallinfo],,, [#include <malloc.h>])
- AC_CHECK_TYPES([Elf32_Versym],,, [#include <elf.h>])   # for vdso_support.h
-+AC_CHECK_FUNCS(__sbrk)          # for intercepting glibc memory allocator
- AC_CHECK_FUNCS(sbrk)            # for tcmalloc to get memory
- AC_CHECK_FUNCS(geteuid)         # for turning off services when run as root
- AC_CHECK_FUNCS(fork)            # for the pthread_atfork setup
 diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
-index 2f6116f..0605855 100755
+index e2efb05..66b3110 100644
 --- a/src/malloc_hook_mmap_linux.h
 +++ b/src/malloc_hook_mmap_linux.h
 @@ -46,6 +46,10 @@
@@ -39,7 +25,7 @@
  // The x86-32 case and the x86-64 case differ:
  // 32b has a mmap2() syscall, 64b does not.
  // 64b and 32b have different calling conventions for mmap().
-@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+@@ -175,7 +179,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
    return result;
  }
  
@@ -48,12 +34,6 @@
  
  extern "C" void* mmap(void *start, size_t length, int prot, int flags,
                        int fd, off_t offset) __THROW {
-@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
-   return result;
- }
- 
--#ifndef __UCLIBC__
-+#if HAVE___SBRK
- // libc's version:
- extern "C" void* __sbrk(intptr_t increment);
- 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
rename to meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
index ee34ace..b7b7839 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.90.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
 
-SRCREV = "9608fa3bcf8020d35f59fbf70cd3cbe4b015b972"
+SRCREV = "db7aa547abb5abdd558587a15502584cbc825438"
 SRC_URI = "git://github.com/gperftools/gperftools \
            file://0001-Support-Atomic-ops-on-clang.patch \
            file://0001-fix-build-with-musl-libc.patch \
@@ -20,6 +20,9 @@
 #   do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
 #   Segmentation fault (core dumped)
 COMPATIBLE_HOST_mipsarch = "null"
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+
 # Disable thumb1
 # {standard input}: Assembler messages:
 # {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
@@ -29,6 +32,8 @@
 
 PACKAGECONFIG ?= "libunwind static"
 PACKAGECONFIG_remove_arm_libc-musl = "libunwind"
+PACKAGECONFIG_remove_riscv64 = "libunwind"
+PACKAGECONFIG_remove_riscv32 = "libunwind"
 
 PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
 PACKAGECONFIG[static] = "--enable-static,--disable-static,"
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 7034d33..3800d14 100644
--- a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -21,7 +21,7 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools-brokensep update-rc.d systemd
+inherit autotools-brokensep update-rc.d systemd texinfo
 
 INITSCRIPT_NAME = "gpm"
 INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.100.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb
rename to meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.100.bb
index 22a0498..0b4eac8 100644
--- a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.95.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.100.bb
@@ -7,8 +7,8 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
            "
-SRC_URI[md5sum] = "88031646018d60857f21246962d10011"
-SRC_URI[sha256sum] = "fe07aa152cd946ef8ebd3f87653f14c1d38efe7c6e6fce8c6f773c4814f79baf"
+SRC_URI[md5sum] = "f0fc5394286753eff657cf62b46d024b"
+SRC_URI[sha256sum] = "11b4f99d28392e3e1aeb29bfd006a4f1f40e7fdd7a3f3444ee69014d415f09f2"
 
 inherit autotools
 
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 e20bec5..5f3e3f6 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.330"
-SRCREV = "335f72f8ed4ad0cf335526d3c6c4701f7e58f45b"
+PV = "0.333"
+SRCREV = "2de52be0d00015fa6cde70bb845fa9b86cf6f420"
 SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
index 0903e90..986984d 100644
--- a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -13,7 +13,7 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools pkgconfig lib_package
+inherit autotools pkgconfig lib_package texinfo
 
 # TLS support requires either openssl or gnutls (if both are enabled openssl will be used).
 PACKAGECONFIG ?= "gnutls"
diff --git a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
index 87b1142..227e2a7 100644
--- a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
@@ -12,6 +12,8 @@
 SRC_URI = "git://github.com/OSSystems/inih.git \
           "
 
+UPSTREAM_CHECK_COMMITS = "1"
+
 S = "${WORKDIR}/git"
 
 inherit gitpkgv cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch
new file mode 100644
index 0000000..2c7cd99
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/0001-Makefile.am-add-build-rule-for-README.patch
@@ -0,0 +1,46 @@
+From 22bff509e2a0e5640994bc92ded62c383d99bc37 Mon Sep 17 00:00:00 2001
+From: Pierre-Jean Texier <pjtexier@koncepto.io>
+Date: Mon, 24 Feb 2020 21:44:45 +0100
+Subject: [PATCH] Makefile.am: add build rule for README
+
+Fixes:
+
+| configure.ac:17: installing 'config/config.sub'
+| configure.ac:16: installing 'config/install-sh'
+| configure.ac:16: installing 'config/missing'
+| Makefile.am: error: required file './README' not found
+| libinotifytools/src/Makefile.am: installing 'config/depcomp'
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/111]
+
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ Makefile.am | 2 ++
+ autogen.sh  | 1 -
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 56e4531..d08c8fe 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,6 +2,8 @@ ACLOCAL_AMFLAGS = -I m4
+ 
+ SUBDIRS = libinotifytools src man
+ 
++README: README.md
++
+ dist-hook:
+ # Automake official documentation states that dist-hook should assume files
+ # are not writable.
+diff --git a/autogen.sh b/autogen.sh
+index 48eb21d..31572c2 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -1,4 +1,3 @@
+ #!/bin/sh
+ 
+-cp README.md README
+ autoreconf --install "$@" || exit 1
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
deleted file mode 100644
index 89b890d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-inotify-tools: fix __NR_inotify_add_watch system call number on _MIPS_SIM_ABI64
-
-The correct value should be the same as defined in
-linux/arch/mips/include/uapi/asm/unistd.h
-
-Upstream-Status: Summitted [https://github.com/rvoicilas/inotify-tools/pull/71]
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- libinotifytools/src/inotifytools/inotify-nosys.h |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
-index db76b2c..5f7b11b 100644
---- a/libinotifytools/src/inotifytools/inotify-nosys.h
-+++ b/libinotifytools/src/inotifytools/inotify-nosys.h
-@@ -100,8 +100,8 @@ struct inotify_event {
- # endif
- # if _MIPS_SIM == _MIPS_SIM_ABI64
- #  define __NR_inotify_init (__NR_Linux + 243)
--#  define __NR_inotify_add_watch (__NR_Linux + 243)
--#  define __NR_inotify_rm_watch (__NR_Linux + 243)
-+#  define __NR_inotify_add_watch (__NR_Linux + 244)
-+#  define __NR_inotify_rm_watch (__NR_Linux + 245)
- # endif
- # if _MIPS_SIM == _MIPS_SIM_NABI32
- #  define __NR_inotify_init (__NR_Linux + 247)
--- 
-1.7.10.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
index 05ca4b4..f42abeb 100644
--- a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
@@ -5,12 +5,12 @@
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
 
-SRCREV = "e203934e46784bb34c213078423ba1678e0c4936"
-PV = "3.20.1"
+SRCREV = "cfa93aa19f81d85b63cd64da30c7499890d4c07d"
+PV = "3.20.2.2"
 
 SRC_URI = "git://github.com/rvoicilas/${BPN} \
-           file://inotify-nosys-fix-system-call-number.patch \
-          "
+           file://0001-Makefile.am-add-build-rule-for-README.patch \
+           "
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
deleted file mode 100644
index 19a858b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 335ef14fc801c9dfbe7e5692dc71cfbe72049d2b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 27 Oct 2019 16:38:52 +0100
-Subject: [PATCH] Native: Don't use build time hardcoded python binary path.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This is same patch as used for target build except that we do not use the
-'-S' and '-s' option because '-S' is relatively young [1] and elder build-host
-don't support it [2]
-
-[1] https://github.com/coreutils/coreutils/commit/668306ed86c8c79b0af0db8b9c882654ebb66db2#diff-83d9d52b1f12ac589739ab1334ae4f30
-[2] https://errors.yoctoproject.org/Errors/Details/274743/
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- itstool.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/itstool.in b/itstool.in
-index e64cd34..05d264f 100755
---- a/itstool.in
-+++ b/itstool.in
-@@ -1,4 +1,4 @@
--#!@PYTHON@ -s
-+#!/usr/bin/env python3
- #
- # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
- #
--- 
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch b/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
deleted file mode 100644
index b911053..0000000
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From cd9b56224895576125e91cca317ace8a80f3eb77 Mon Sep 17 00:00:00 2001
-From: Piotr Tworek <tworaz@tworaz.net>
-Date: Sat, 27 Jul 2019 10:19:11 +0200
-Subject: [PATCH] Don't use build time hardcoded python binary path.
-
-This path obviously won't work on target since they refer to build
-machine directory structure. Native builds will also fail if local.conf
-has INHERIT+=rm_work. Instread of hardcoding path to python binary use
-whatever is found in PATH first. This should also allow the tool to use
-python3 binary provided in recipe-sysroot-native.
-
-Upstream-Status: Inappropriate [OE specific]
----
- itstool.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/itstool.in b/itstool.in
-index b3c0033..7df2476 100755
---- a/itstool.in
-+++ b/itstool.in
-@@ -1,4 +1,4 @@
--#!@PYTHON@ -s
-+#!/usr/bin/env -S python3 -s
- #
- # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
- #
---
-2.21.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb b/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
deleted file mode 100644
index 8290c5e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.6.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "ITS Tool allows you to translate your XML documents with PO files"
-HOMEPAGE = "http://itstool.org/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59c57b95fd7d0e9e238ebbc7ad47c5a5"
-
-inherit autotools python3native
-
-DEPENDS = "libxml2-native"
-
-SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2"
-SRC_URI_append_class-native = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch"
-SRC_URI_append_class-target = " file://0002-Don-t-use-build-time-hardcoded-python-binary-path.patch"
-
-SRC_URI[md5sum] = "4306eeba4f4aee6b393d14f9c3c57ca1"
-SRC_URI[sha256sum] = "6233cc22726a9a5a83664bf67d1af79549a298c23185d926c3677afa917b92a9"
-
-BBCLASSEXTEND = "native"
-
-RDEPENDS_${PN} += "libxml2-python"
-RDEPENDS_${PN}_class-native = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb b/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb
index b79e028..674736a 100644
--- a/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/joe/joe_4.6.bb
@@ -9,7 +9,7 @@
 PACKAGECONFIG ??= "curses"
 PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo"
 
-inherit autotools-brokensep
+inherit autotools-brokensep mime-xdg
 
 SRC_URI[md5sum] = "9017484e6116830d846678b625ea5c43"
 SRC_URI[sha256sum] = "495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de"
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch b/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
new file mode 100644
index 0000000..9ac0770
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
@@ -0,0 +1,898 @@
+From ec3e1f411c332cbc2f2bc7ab7e2175ebf918b37a Mon Sep 17 00:00:00 2001
+From: Peter Oberparleiter <oberpar@linux.ibm.com>
+Date: Fri, 24 May 2019 16:56:52 +0200
+Subject: [PATCH 1/2] geninfo: Add intermediate text format support
+
+This change adds support for parsing the output of gcov's intermediate
+text file format as implemented by GCC versions 5 to 8.  The use of the
+gcov intermediate format should increase processing speed. It also
+provides branch coverage data when using the --initial command line
+option.
+
+Users can control whether geninfo uses the intermediate format via the
+geninfo_intermediate configuration file option. Valid values are:
+
+     0: Use normal text format
+     1: Use intermediate format
+  auto: Use intermediate format if available. This is the default.
+
+Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
+---
+ bin/geninfo  | 567 ++++++++++++++++++++++++++++++++++++++++++++-------
+ lcovrc       |   3 +
+ man/lcovrc.5 |  24 +++
+ 3 files changed, 521 insertions(+), 73 deletions(-)
+
+Upstream-Status: Backport
+Download URL: https://github.com/linux-test-project/lcov/commit/ebfeb3e179e450c69c3532f98cd5ea1fbf6ccba7
+
+diff --git a/bin/geninfo b/bin/geninfo
+index f41eaec..0276666 100755
+--- a/bin/geninfo
++++ b/bin/geninfo
+@@ -54,6 +54,8 @@ use warnings;
+ use File::Basename; 
+ use File::Spec::Functions qw /abs2rel catdir file_name_is_absolute splitdir
+ 			      splitpath catpath/;
++use File::Temp qw(tempfile tempdir);
++use File::Copy qw(copy);
+ use Getopt::Long;
+ use Digest::MD5 qw(md5_base64);
+ use Cwd qw/abs_path/;
+@@ -163,13 +165,13 @@ sub solve_relative_path($$);
+ sub read_gcov_header($);
+ sub read_gcov_file($);
+ sub info(@);
++sub process_intermediate($$$);
+ sub map_llvm_version($);
+ sub version_to_str($);
+ sub get_gcov_version();
+ sub system_no_output($@);
+ sub read_config($);
+ sub apply_config($);
+-sub get_exclusion_data($);
+ sub apply_exclusion_data($$);
+ sub process_graphfile($$);
+ sub filter_fn_name($);
+@@ -264,6 +266,8 @@ our $gcno_split_crc;
+ our $func_coverage = 1;
+ our $br_coverage = 0;
+ our $rc_auto_base = 1;
++our $rc_intermediate = "auto";
++our $intermediate;
+ our $excl_line = "LCOV_EXCL_LINE";
+ our $excl_br_line = "LCOV_EXCL_BR_LINE";
+ 
+@@ -331,6 +335,7 @@ if ($config || %opt_rc)
+ 		"geninfo_compat"		=> \$opt_compat,
+ 		"geninfo_adjust_src_path"	=> \$rc_adjust_src_path,
+ 		"geninfo_auto_base"		=> \$rc_auto_base,
++		"geninfo_intermediate"		=> \$rc_intermediate,
+ 		"lcov_function_coverage"	=> \$func_coverage,
+ 		"lcov_branch_coverage"		=> \$br_coverage,
+ 		"lcov_excl_line"		=> \$excl_line,
+@@ -460,15 +465,38 @@ if (system_no_output(3, $gcov_tool, "--help") == -1)
+ }
+ 
+ ($gcov_version, $gcov_version_string) = get_gcov_version();
++$gcov_caps = get_gcov_capabilities();
++
++# Determine intermediate mode
++if ($rc_intermediate eq "0") {
++	$intermediate = 0;
++} elsif ($rc_intermediate eq "1") {
++	$intermediate = 1;
++} elsif (lc($rc_intermediate) eq "auto") {
++	# Use intermediate format if supported by gcov
++	$intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
++} else {
++	die("ERROR: invalid value for geninfo_intermediate: ".
++	    "'$rc_intermediate'\n");
++}
++
++if ($intermediate) {
++	info("Using intermediate gcov format\n");
++	if ($opt_derive_func_data) {
++		warn("WARNING: --derive-func-data is not compatible with ".
++		     "intermediate format - ignoring\n");
++		$opt_derive_func_data = 0;
++	}
++}
+ 
+ # Determine gcov options
+-$gcov_caps = get_gcov_capabilities();
+ push(@gcov_options, "-b") if ($gcov_caps->{'branch-probabilities'} &&
+ 			      ($br_coverage || $func_coverage));
+ push(@gcov_options, "-c") if ($gcov_caps->{'branch-counts'} &&
+ 			      $br_coverage);
+ push(@gcov_options, "-a") if ($gcov_caps->{'all-blocks'} &&
+-			      $opt_gcov_all_blocks && $br_coverage);
++			      $opt_gcov_all_blocks && $br_coverage &&
++			      !$intermediate);
+ if ($gcov_caps->{'hash-filenames'})
+ {
+ 	push(@gcov_options, "-x");
+@@ -599,7 +627,7 @@ foreach my $entry (@data_directory) {
+ 	gen_info($entry);
+ }
+ 
+-if ($initial && $br_coverage) {
++if ($initial && $br_coverage && !$intermediate) {
+ 	warn("Note: --initial does not generate branch coverage ".
+ 	     "data\n");
+ }
+@@ -768,6 +796,7 @@ sub gen_info($)
+ 	my $prefix;
+ 	my $type;
+ 	my $ext;
++	my $tempdir;
+ 
+ 	if ($initial) {
+ 		$type = "graph";
+@@ -798,16 +827,22 @@ sub gen_info($)
+ 		$prefix = "";
+ 	}
+ 
++	$tempdir = tempdir(CLEANUP => 1);
++
+ 	# Process all files in list
+ 	foreach $file (@file_list) {
+ 		# Process file
+-		if ($initial) {
++		if ($intermediate) {
++			process_intermediate($file, $prefix, $tempdir);
++		} elsif ($initial) {
+ 			process_graphfile($file, $prefix);
+ 		} else {
+ 			process_dafile($file, $prefix);
+ 		}
+ 	}
+ 
++	unlink($tempdir);
++
+ 	# Report whether files were excluded.
+ 	if (%excluded_files) {
+ 		info("Excluded data for %d files due to include/exclude options\n",
+@@ -1058,10 +1093,12 @@ sub process_dafile($$)
+ 
+ 	# Try to find base directory automatically if requested by user
+ 	if ($rc_auto_base) {
+-		$base_dir = find_base_from_graph($base_dir, $instr, $graph);
++		$base_dir = find_base_from_source($base_dir,
++			[ keys(%{$instr}), keys(%{$graph}) ]);
+ 	}
+ 
+-	($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
++	adjust_source_filenames($instr, $base_dir);
++	adjust_source_filenames($graph, $base_dir);
+ 
+ 	# Set $object_dir to real location of object files. This may differ
+ 	# from $da_dir if the graph file is just a link to the "real" object
+@@ -2017,6 +2054,299 @@ sub read_gcov_file($)
+ }
+ 
+ 
++#
++# read_intermediate_text(gcov_filename, data)
++#
++# Read gcov intermediate text format in GCOV_FILENAME and add the resulting
++# data to DATA in the following format:
++#
++# data:      source_filename -> file_data
++# file_data: concatenated lines of intermediate text data
++#
++
++sub read_intermediate_text($$)
++{
++	my ($gcov_filename, $data) = @_;
++	my $fd;
++	my $filename;
++
++	open($fd, "<", $gcov_filename) or
++		die("ERROR: Could not read $gcov_filename: $!\n");
++	while (my $line = <$fd>) {
++		if ($line =~ /^file:(.*)$/) {
++			$filename = $1;
++			chomp($filename);
++		} elsif (defined($filename)) {
++			$data->{$filename} .= $line;
++		}
++	}
++	close($fd);
++}
++
++
++#
++# intermediate_text_to_info(fd, data, srcdata)
++#
++# Write DATA in info format to file descriptor FD.
++#
++# data:      filename -> file_data:
++# file_data: concatenated lines of intermediate text data
++#
++# srcdata:   filename -> [ excl, brexcl, checksums ]
++# excl:      lineno -> 1 for all lines for which to exclude all data
++# brexcl:    lineno -> 1 for all lines for which to exclude branch data
++# checksums: lineno -> source code checksum
++#
++# Note: To simplify processing, gcov data is not combined here, that is counts
++#       that appear multiple times for the same lines/branches are not added.
++#       This is done by lcov/genhtml when reading the data files.
++#
++
++sub intermediate_text_to_info($$$)
++{
++	my ($fd, $data, $srcdata) = @_;
++	my $branch_num = 0;
++	my $c;
++
++	return if (!%{$data});
++
++	print($fd "TN:$test_name\n");
++	for my $filename (keys(%{$data})) {
++		my ($excl, $brexcl, $checksums);
++
++		if (defined($srcdata->{$filename})) {
++			($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
++		}
++
++		print($fd "SF:$filename\n");
++		for my $line (split(/\n/, $data->{$filename})) {
++			if ($line =~ /^lcount:(\d+),(\d+),?/) {
++				# lcount:<line>,<count>
++				# lcount:<line>,<count>,<has_unexecuted_blocks>
++				if ($checksum && exists($checksums->{$1})) {
++					$c = ",".$checksums->{$1};
++				} else {
++					$c = "";
++				}
++				print($fd "DA:$1,$2$c\n") if (!$excl->{$1});
++
++				# Intermediate text format does not provide
++				# branch numbers, and the same branch may appear
++				# multiple times on the same line (e.g. in
++				# template instances). Synthesize a branch
++				# number based on the assumptions:
++				# a) the order of branches is fixed across
++				#    instances
++				# b) an instance starts with an lcount line
++				$branch_num = 0;
++			} elsif ($line =~ /^function:(\d+),(\d+),([^,]+)$/) {
++				next if (!$func_coverage || $excl->{$1});
++
++				# function:<line>,<count>,<name>
++				print($fd "FN:$1,$3\n");
++				print($fd "FNDA:$2,$3\n");
++			} elsif ($line =~ /^function:(\d+),\d+,(\d+),([^,]+)$/) {
++				next if (!$func_coverage || $excl->{$1});
++
++				# function:<start_line>,<end_line>,<count>,
++				#          <name>
++				print($fd "FN:$1,$3\n");
++				print($fd "FNDA:$2,$3\n");
++			} elsif ($line =~ /^branch:(\d+),(taken|nottaken|notexec)/) {
++				next if (!$br_coverage || $excl->{$1} ||
++					 $brexcl->{$1});
++
++				# branch:<line>,taken|nottaken|notexec
++				if ($2 eq "taken") {
++					$c = 1;
++				} elsif ($2 eq "nottaken") {
++					$c = 0;
++				} else {
++					$c = "-";
++				}
++				print($fd "BRDA:$1,0,$branch_num,$c\n");
++				$branch_num++;
++			}
++		}
++		print($fd "end_of_record\n");
++	}
++}
++
++
++sub get_output_fd($$)
++{
++	my ($outfile, $file) = @_;
++	my $fd;
++
++	if (!defined($outfile)) {
++		open($fd, ">", "$file.info") or
++			die("ERROR: Cannot create file $file.info: $!\n");
++	} elsif ($outfile eq "-") {
++		open($fd, ">&STDOUT") or
++			die("ERROR: Cannot duplicate stdout: $!\n");
++	} else {
++		open($fd, ">>", $outfile) or
++			die("ERROR: Cannot write to file $outfile: $!\n");
++	}
++
++	return $fd;
++}
++
++
++#
++# print_gcov_warnings(stderr_file, is_graph, map)
++#
++# Print GCOV warnings in file STDERR_FILE to STDERR. If IS_GRAPH is non-zero,
++# suppress warnings about missing as these are expected. Replace keys found
++# in MAP with their values.
++#
++
++sub print_gcov_warnings($$$)
++{
++	my ($stderr_file, $is_graph, $map) = @_;
++	my $fd;
++
++	if (!open($fd, "<", $stderr_file)) {
++		warn("WARNING: Could not open GCOV stderr file ".
++		     "$stderr_file: $!\n");
++		return;
++	}
++	while (my $line = <$fd>) {
++		next if ($is_graph && $line =~ /cannot open data file/);
++
++		for my $key (keys(%{$map})) {
++			$line =~ s/\Q$key\E/$map->{$key}/g;
++		}
++
++		print(STDERR $line);
++	}
++	close($fd);
++}
++
++
++#
++# process_intermediate(file, dir, tempdir)
++#
++# Create output for a single file (either a data file or a graph file) using
++# gcov's intermediate option.
++#
++
++sub process_intermediate($$$)
++{
++	my ($file, $dir, $tempdir) = @_;
++	my ($fdir, $fbase, $fext);
++	my $data_file;
++	my $errmsg;
++	my %data;
++	my $fd;
++	my $base;
++	my $srcdata;
++	my $is_graph = 0;
++	my ($out, $err, $rc);
++
++	info("Processing %s\n", abs2rel($file, $dir));
++
++	$file = solve_relative_path($cwd, $file);
++	($fdir, $fbase, $fext) = split_filename($file);
++
++	$is_graph = 1 if (".$fext" eq $graph_file_extension);
++
++	if ($is_graph) {
++		# Process graph file - copy to temp directory to prevent
++		# accidental processing of associated data file
++		$data_file = "$tempdir/$fbase$graph_file_extension";
++		if (!copy($file, $data_file)) {
++			$errmsg = "ERROR: Could not copy file $file";
++			goto err;
++		}
++	} else {
++		# Process data file in place
++		$data_file = $file;
++	}
++
++	# Change directory
++	if (!chdir($tempdir)) {
++		$errmsg = "Could not change to directory $tempdir: $!";
++		goto err;
++	}
++
++	# Run gcov on data file
++	($out, $err, $rc) = system_no_output(1 + 2 + 4, $gcov_tool,
++					     $data_file, @gcov_options, "-i");
++	defined($out) && unlink($out);
++	if (defined($err)) {
++		print_gcov_warnings($err, $is_graph, {
++			$data_file => $file,
++		});
++		unlink($err);
++	}
++	if ($rc) {
++		$errmsg = "GCOV failed for $file";
++		goto err;
++	}
++
++	if ($is_graph) {
++		# Remove graph file copy
++		unlink($data_file);
++	}
++
++	# Parse resulting file(s)
++	for my $gcov_filename (glob("*.gcov")) {
++		read_intermediate_text($gcov_filename, \%data);
++		unlink($gcov_filename);
++	}
++
++	if (!%data) {
++		warn("WARNING: GCOV did not produce any data for $file\n");
++		return;
++	}
++
++	# Determine base directory
++	if (defined($base_directory)) {
++		$base = $base_directory;
++	} else {
++		$base = $fdir;
++
++		if (is_compat($COMPAT_MODE_LIBTOOL)) {
++			# Avoid files from .libs dirs
++			$base =~ s/\.libs$//;
++		}
++
++		# Try to find base directory automatically if requested by user
++		if ($rc_auto_base) {
++			$base = find_base_from_source($base, [ keys(%data) ]);
++		}
++	}
++
++	# Apply base file name to relative source files
++	adjust_source_filenames(\%data, $base);
++
++	# Remove excluded source files
++	filter_source_files(\%data);
++
++	# Get data on exclusion markers and checksums if requested
++	if (!$no_markers || $checksum) {
++		$srcdata = get_all_source_data(keys(%data));
++	}
++
++	# Generate output
++	$fd = get_output_fd($output_filename, $file);
++	intermediate_text_to_info($fd, \%data, $srcdata);
++	close($fd);
++
++	chdir($cwd);
++
++	return;
++
++err:
++	if ($ignore[$ERROR_GCOV]) {
++		warn("WARNING: $errmsg!\n");
++	} else {
++		die("ERROR: $errmsg!\n")
++	}
++}
++
++
+ # Map LLVM versions to the version of GCC gcov which they emulate.
+ 
+ sub map_llvm_version($)
+@@ -2151,8 +2481,12 @@ sub int_handler()
+ #
+ #   MODE & 1: suppress STDOUT
+ #   MODE & 2: suppress STDERR
++#   MODE & 4: redirect to temporary files instead of suppressing
+ #
+-# Return 0 on success, non-zero otherwise.
++# Return (stdout, stderr, rc):
++#    stdout: path to tempfile containing stdout or undef
++#    stderr: path to tempfile containing stderr or undef
++#    0 on success, non-zero otherwise
+ #
+ 
+ sub system_no_output($@)
+@@ -2161,14 +2495,31 @@ sub system_no_output($@)
+ 	my $result;
+ 	local *OLD_STDERR;
+ 	local *OLD_STDOUT;
++	my $stdout_file;
++	my $stderr_file;
++	my $fd;
+ 
+ 	# Save old stdout and stderr handles
+ 	($mode & 1) && open(OLD_STDOUT, ">>&", "STDOUT");
+ 	($mode & 2) && open(OLD_STDERR, ">>&", "STDERR");
+ 
+-	# Redirect to /dev/null
+-	($mode & 1) && open(STDOUT, ">", "/dev/null");
+-	($mode & 2) && open(STDERR, ">", "/dev/null");
++	if ($mode & 4) {
++		# Redirect to temporary files
++		if ($mode & 1) {
++			($fd, $stdout_file) = tempfile(UNLINK => 1);
++			open(STDOUT, ">", $stdout_file) || warn("$!\n");
++			close($fd);
++		}
++		if ($mode & 2) {
++			($fd, $stderr_file) = tempfile(UNLINK => 1);
++			open(STDERR, ">", $stderr_file) || warn("$!\n");
++			close($fd);
++		}
++	} else {
++		# Redirect to /dev/null
++		($mode & 1) && open(STDOUT, ">", "/dev/null");
++		($mode & 2) && open(STDERR, ">", "/dev/null");
++	}
+  
+ 	debug("system(".join(' ', @_).")\n");
+ 	system(@_);
+@@ -2181,8 +2532,18 @@ sub system_no_output($@)
+ 	# Restore old handles
+ 	($mode & 1) && open(STDOUT, ">>&", "OLD_STDOUT");
+ 	($mode & 2) && open(STDERR, ">>&", "OLD_STDERR");
++
++	# Remove empty output files
++	if (defined($stdout_file) && -z $stdout_file) {
++		unlink($stdout_file);
++		$stdout_file = undef;
++	}
++	if (defined($stderr_file) && -z $stderr_file) {
++		unlink($stderr_file);
++		$stderr_file = undef;
++	}
+  
+-	return $result;
++	return ($stdout_file, $stderr_file, $result);
+ }
+ 
+ 
+@@ -2260,23 +2621,28 @@ sub apply_config($)
+ 
+ 
+ #
+-# get_exclusion_data(filename)
++# get_source_data(filename)
+ #
+-# Scan specified source code file for exclusion markers and return
+-#   linenumber -> 1
+-# for all lines which should be excluded.
++# Scan specified source code file for exclusion markers and checksums. Return
++#   ( excl, brexcl, checksums ) where
++#   excl:      lineno -> 1 for all lines for which to exclude all data
++#   brexcl:    lineno -> 1 for all lines for which to exclude branch data
++#   checksums: lineno -> source code checksum
+ #
+ 
+-sub get_exclusion_data($)
++sub get_source_data($)
+ {
+ 	my ($filename) = @_;
+ 	my %list;
+ 	my $flag = 0;
++	my %brdata;
++	my $brflag = 0;
++	my %checksums;
+ 	local *HANDLE;
+ 
+ 	if (!open(HANDLE, "<", $filename)) {
+ 		warn("WARNING: could not open $filename\n");
+-		return undef;
++		return;
+ 	}
+ 	while (<HANDLE>) {
+ 		if (/$EXCL_STOP/) {
+@@ -2287,14 +2653,62 @@ sub get_exclusion_data($)
+ 		if (/$excl_line/ || $flag) {
+ 			$list{$.} = 1;
+ 		}
++		if (/$EXCL_BR_STOP/) {
++			$brflag = 0;
++		} elsif (/$EXCL_BR_START/) {
++			$brflag = 1;
++		}
++		if (/$excl_br_line/ || $brflag) {
++			$brdata{$.} = 1;
++		}
++		if ($checksum) {
++			chomp();
++			$checksums{$.} = md5_base64($_);
++		}
+ 	}
+ 	close(HANDLE);
+ 
+-	if ($flag) {
++	if ($flag || $brflag) {
+ 		warn("WARNING: unterminated exclusion section in $filename\n");
+ 	}
+ 
+-	return \%list;
++	return (\%list, \%brdata, \%checksums);
++}
++
++
++#
++# get_all_source_data(filenames)
++#
++# Scan specified source code files for exclusion markers and return
++#   filename -> [ excl, brexcl, checksums ]
++#   excl:      lineno -> 1 for all lines for which to exclude all data
++#   brexcl:    lineno -> 1 for all lines for which to exclude branch data
++#   checksums: lineno -> source code checksum
++#
++
++sub get_all_source_data(@)
++{
++	my @filenames = @_;
++	my %data;
++	my $failed = 0;
++
++	for my $filename (@filenames) {
++		my @d;
++		next if (exists($data{$filename}));
++
++		@d = get_source_data($filename);
++		if (@d) {
++			$data{$filename} = [ @d ];
++		} else {
++			$failed = 1;
++		}
++	}
++
++	if ($failed) {
++		warn("WARNING: some exclusion markers may be ignored\n");
++	}
++
++	return \%data;
+ }
+ 
+ 
+@@ -2318,35 +2732,17 @@ sub apply_exclusion_data($$)
+ {
+ 	my ($instr, $graph) = @_;
+ 	my $filename;
+-	my %excl_data;
+-	my $excl_read_failed = 0;
++	my $excl_data;
+ 
+-	# Collect exclusion marker data
+-	foreach $filename (sort_uniq_lex(keys(%{$graph}), keys(%{$instr}))) {
+-		my $excl = get_exclusion_data($filename);
+-
+-		# Skip and note if file could not be read
+-		if (!defined($excl)) {
+-			$excl_read_failed = 1;
+-			next;
+-		}
+-
+-		# Add to collection if there are markers
+-		$excl_data{$filename} = $excl if (keys(%{$excl}) > 0);
+-	}
+-
+-	# Warn if not all source files could be read
+-	if ($excl_read_failed) {
+-		warn("WARNING: some exclusion markers may be ignored\n");
+-	}
++	($excl_data) = get_all_source_data(keys(%{$graph}), keys(%{$instr}));
+ 
+ 	# Skip if no markers were found
+-	return ($instr, $graph) if (keys(%excl_data) == 0);
++	return ($instr, $graph) if (!%$excl_data);
+ 
+ 	# Apply exclusion marker data to graph
+-	foreach $filename (keys(%excl_data)) {
++	foreach $filename (keys(%$excl_data)) {
+ 		my $function_data = $graph->{$filename};
+-		my $excl = $excl_data{$filename};
++		my $excl = $excl_data->{$filename}->[0];
+ 		my $function;
+ 
+ 		next if (!defined($function_data));
+@@ -2384,9 +2780,9 @@ sub apply_exclusion_data($$)
+ 	}
+ 
+ 	# Apply exclusion marker data to instr
+-	foreach $filename (keys(%excl_data)) {
++	foreach $filename (keys(%$excl_data)) {
+ 		my $line_data = $instr->{$filename};
+-		my $excl = $excl_data{$filename};
++		my $excl = $excl_data->{$filename}->[0];
+ 		my $line;
+ 		my @new_data;
+ 
+@@ -2468,10 +2864,12 @@ sub process_graphfile($$)
+ 
+ 	# Try to find base directory automatically if requested by user
+ 	if ($rc_auto_base) {
+-		$base_dir = find_base_from_graph($base_dir, $instr, $graph);
++		$base_dir = find_base_from_source($base_dir,
++			[ keys(%{$instr}), keys(%{$graph}) ]);
+ 	}
+ 
+-	($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
++	adjust_source_filenames($instr, $base_dir);
++	adjust_source_filenames($graph, $base_dir);
+ 
+ 	if (!$no_markers) {
+ 		# Apply exclusion marker data to graph file data
+@@ -2767,11 +3165,11 @@ sub parent_dir($)
+ }
+ 
+ #
+-# find_base_from_graph(base_dir, instr, graph)
++# find_base_from_source(base_dir, source_files)
+ #
+-# Try to determine the base directory of the graph file specified by INSTR
+-# and GRAPH. The base directory is the base for all relative filenames in
+-# the graph file. It is defined by the current working directory at time
++# Try to determine the base directory of the object file built from
++# SOURCE_FILES. The base directory is the base for all relative filenames in
++# the gcov data. It is defined by the current working directory at time
+ # of compiling the source file.
+ #
+ # This function implements a heuristic which relies on the following
+@@ -2781,16 +3179,16 @@ sub parent_dir($)
+ # - files by the same name are not present in multiple parent directories
+ #
+ 
+-sub find_base_from_graph($$$)
++sub find_base_from_source($$)
+ {
+-	my ($base_dir, $instr, $graph) = @_;
++	my ($base_dir, $source_files) = @_;
+ 	my $old_base;
+ 	my $best_miss;
+ 	my $best_base;
+ 	my %rel_files;
+ 
+ 	# Determine list of relative paths
+-	foreach my $filename (keys(%{$instr}), keys(%{$graph})) {
++	foreach my $filename (@$source_files) {
+ 		next if (file_name_is_absolute($filename));
+ 
+ 		$rel_files{$filename} = 1;
+@@ -2829,17 +3227,17 @@ sub find_base_from_graph($$$)
+ }
+ 
+ #
+-# adjust_graph_filenames(base_dir, instr, graph)
++# adjust_source_filenames(hash, base_dir)
+ #
+-# Make relative paths in INSTR and GRAPH absolute and apply
+-# geninfo_adjust_src_path setting to graph file data.
++# Transform all keys of HASH to absolute form and apply requested
++# transformations.
+ #
+ 
+-sub adjust_graph_filenames($$$)
++sub adjust_source_filenames($$$)
+ {
+-	my ($base_dir, $instr, $graph) = @_;
++	my ($hash, $base_dir) = @_;
+ 
+-	foreach my $filename (keys(%{$instr})) {
++	foreach my $filename (keys(%{$hash})) {
+ 		my $old_filename = $filename;
+ 
+ 		# Convert to absolute canonical form
+@@ -2851,28 +3249,50 @@ sub adjust_graph_filenames($$$)
+ 		}
+ 
+ 		if ($filename ne $old_filename) {
+-			$instr->{$filename} = delete($instr->{$old_filename});
++			$hash->{$filename} = delete($hash->{$old_filename});
+ 		}
+ 	}
++}
+ 
+-	foreach my $filename (keys(%{$graph})) {
+-		my $old_filename = $filename;
+ 
+-		# Make absolute
+-		# Convert to absolute canonical form
+-		$filename = solve_relative_path($base_dir, $filename);
++#
++# filter_source_files(hash)
++#
++# Remove unwanted source file data from HASH.
++#
+ 
+-		# Apply adjustment
+-		if (defined($adjust_src_pattern)) {
+-			$filename =~ s/$adjust_src_pattern/$adjust_src_replace/g;
++sub filter_source_files($)
++{
++	my ($hash) = @_;
++
++	foreach my $filename (keys(%{$hash})) {
++		# Skip external files if requested
++		goto del if (!$opt_external && is_external($filename));
++
++		# Apply include patterns
++		if (@include_patterns) {
++			my $keep;
++
++			foreach my $pattern (@include_patterns) {
++				if ($filename =~ (/^$pattern$/)) {
++					$keep = 1;
++					last;
++				}
++			}
++			goto del if (!$keep);
+ 		}
+ 
+-		if ($filename ne $old_filename) {
+-			$graph->{$filename} = delete($graph->{$old_filename});
++		# Apply exclude patterns
++		foreach my $pattern (@exclude_patterns) {
++			goto del if ($filename =~ (/^$pattern$/));
+ 		}
+-	}
++		next;
+ 
+-	return ($instr, $graph);
++del:
++		# Remove file data
++		delete($hash->{$filename});
++		$excluded_files{$filename} = 1;
++	}
+ }
+ 
+ #
+@@ -3784,6 +4204,7 @@ sub get_gcov_capabilities()
+ 		'c' => 'branch-counts',
+ 		'f' => 'function-summaries',
+ 		'h' => 'help',
++		'i' => 'intermediate-format',
+ 		'l' => 'long-file-names',
+ 		'n' => 'no-output',
+ 		'o' => 'object-directory',
+diff --git a/lcovrc b/lcovrc
+index 40f364f..bd4bc3b 100644
+--- a/lcovrc
++++ b/lcovrc
+@@ -134,6 +134,9 @@ genhtml_desc_html=0
+ # when collecting coverage data.
+ geninfo_auto_base = 1
+ 
++# Use gcov intermediate format? Valid values are 0, 1, auto
++geninfo_intermediate = auto
++
+ # Directory containing gcov kernel files
+ # lcov_gcov_dir = /proc/gcov
+ 
+diff --git a/man/lcovrc.5 b/man/lcovrc.5
+index f20d273..bf0ce7a 100644
+--- a/man/lcovrc.5
++++ b/man/lcovrc.5
+@@ -223,6 +223,11 @@ geninfo_compat_libtool = 0
+ geninfo_auto_base = 1
+ .br
+ 
++# Use gcov intermediate format? Valid values are 0, 1, auto
++.br
++geninfo_intermediate = auto
++.br
++
+ # Directory containing gcov kernel files
+ .br
+ lcov_gcov_dir = /proc/gcov
+@@ -789,6 +794,25 @@ located, and in addition, is different between files of the same project.
+ Default is 1.
+ .PP
+ 
++.BR geninfo_intermediate " ="
++.IR 0 | 1 | auto
++.IP
++Specify whether to use gcov intermediate format
++.br
++
++Use this option to control whether geninfo should use the gcov intermediate
++format while collecting coverage data. The use of the gcov intermediate format
++should increase processing speed. It also provides branch coverage data when
++using the \-\-initial command line option.
++.br
++
++Valid values are 0 for off, 1 for on, and "auto" to let geninfo automatically
++use immediate format when supported by gcov.
++.br
++
++Default is "auto".
++.PP
++
+ .BR lcov_gcov_dir " ="
+ .I path_to_kernel_coverage_data
+ .IP
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch b/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
new file mode 100644
index 0000000..7b18063
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
@@ -0,0 +1,247 @@
+From e13b2b6f8443da660cafa0679c3b16240843ce9f Mon Sep 17 00:00:00 2001
+From: Peter Oberparleiter <oberpar@linux.ibm.com>
+Date: Fri, 24 May 2019 17:16:56 +0200
+Subject: [PATCH 2/2] geninfo: Add intermediate JSON format support
+
+This change adds support for parsing the output of gcov's intermediate
+JSON file format as implemented by GCC version 9.
+
+Note: The way that the intermediate file format support is implemented
+in geninfo removes the need to parse .gcno files directly. Since geninfo
+does not include support for parsing GCC 9 .gcno files, using the
+intermediate format is the only option for geninfo to collect coverage
+data generated by GCC version 9.
+
+Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
+---
+ bin/geninfo | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 160 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport
+Download URL: https://github.com/linux-test-project/lcov/commit/75fbae1cfc5027f818a0bb865bf6f96fab3202da
+
+diff --git a/bin/geninfo b/bin/geninfo
+index 0276666..cceb782 100755
+--- a/bin/geninfo
++++ b/bin/geninfo
+@@ -59,6 +59,9 @@ use File::Copy qw(copy);
+ use Getopt::Long;
+ use Digest::MD5 qw(md5_base64);
+ use Cwd qw/abs_path/;
++use PerlIO::gzip;
++use JSON qw(decode_json);
++
+ if( $^O eq "msys" )
+ {
+ 	require File::Spec::Win32;
+@@ -474,7 +477,8 @@ if ($rc_intermediate eq "0") {
+ 	$intermediate = 1;
+ } elsif (lc($rc_intermediate) eq "auto") {
+ 	# Use intermediate format if supported by gcov
+-	$intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
++	$intermediate = ($gcov_caps->{'intermediate-format'} ||
++			 $gcov_caps->{'json-format'}) ? 1 : 0;
+ } else {
+ 	die("ERROR: invalid value for geninfo_intermediate: ".
+ 	    "'$rc_intermediate'\n");
+@@ -2084,6 +2088,48 @@ sub read_intermediate_text($$)
+ }
+ 
+ 
++#
++# read_intermediate_json(gcov_filename, data, basedir_ref)
++#
++# Read gcov intermediate JSON format in GCOV_FILENAME and add the resulting
++# data to DATA in the following format:
++#
++# data:      source_filename -> file_data
++# file_data: GCOV JSON data for file
++#
++# Also store the value for current_working_directory to BASEDIR_REF.
++#
++
++sub read_intermediate_json($$$)
++{
++	my ($gcov_filename, $data, $basedir_ref) = @_;
++	my $fd;
++	my $text;
++	my $json;
++
++	open($fd, "<:gzip", $gcov_filename) or
++		die("ERROR: Could not read $gcov_filename: $!\n");
++	local $/;
++	$text = <$fd>;
++	close($fd);
++
++	$json = decode_json($text);
++	if (!defined($json) || !exists($json->{"files"}) ||
++	    ref($json->{"files"} ne "ARRAY")) {
++		die("ERROR: Unrecognized JSON output format in ".
++		    "$gcov_filename\n");
++	}
++
++	$$basedir_ref = $json->{"current_working_directory"};
++
++	for my $file (@{$json->{"files"}}) {
++		my $filename = $file->{"file"};
++
++		$data->{$filename} = $file;
++	}
++}
++
++
+ #
+ # intermediate_text_to_info(fd, data, srcdata)
+ #
+@@ -2173,6 +2219,104 @@ sub intermediate_text_to_info($$$)
+ }
+ 
+ 
++#
++# intermediate_json_to_info(fd, data, srcdata)
++#
++# Write DATA in info format to file descriptor FD.
++#
++# data:      filename -> file_data:
++# file_data: GCOV JSON data for file
++#
++# srcdata:   filename -> [ excl, brexcl, checksums ]
++# excl:      lineno -> 1 for all lines for which to exclude all data
++# brexcl:    lineno -> 1 for all lines for which to exclude branch data
++# checksums: lineno -> source code checksum
++#
++# Note: To simplify processing, gcov data is not combined here, that is counts
++#       that appear multiple times for the same lines/branches are not added.
++#       This is done by lcov/genhtml when reading the data files.
++#
++
++sub intermediate_json_to_info($$$)
++{
++	my ($fd, $data, $srcdata) = @_;
++	my $branch_num = 0;
++
++	return if (!%{$data});
++
++	print($fd "TN:$test_name\n");
++	for my $filename (keys(%{$data})) {
++		my ($excl, $brexcl, $checksums);
++		my $file_data = $data->{$filename};
++
++		if (defined($srcdata->{$filename})) {
++			($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
++		}
++
++		print($fd "SF:$filename\n");
++
++		# Function data
++		if ($func_coverage) {
++			for my $d (@{$file_data->{"functions"}}) {
++				my $line = $d->{"start_line"};
++				my $count = $d->{"execution_count"};
++				my $name = $d->{"name"};
++
++				next if (!defined($line) || !defined($count) ||
++					 !defined($name) || $excl->{$line});
++
++				print($fd "FN:$line,$name\n");
++				print($fd "FNDA:$count,$name\n");
++			}
++		}
++
++		# Line data
++		for my $d (@{$file_data->{"lines"}}) {
++			my $line = $d->{"line_number"};
++			my $count = $d->{"count"};
++			my $c;
++			my $branches = $d->{"branches"};
++			my $unexec = $d->{"unexecuted_block"};
++
++			next if (!defined($line) || !defined($count) ||
++				 $excl->{$line});
++
++			if (defined($unexec) && $unexec && $count == 0) {
++				$unexec = 1;
++			} else {
++				$unexec = 0;
++			}
++
++			if ($checksum && exists($checksums->{$line})) {
++				$c = ",".$checksums->{$line};
++			} else {
++				$c = "";
++			}
++			print($fd "DA:$line,$count$c\n");
++
++			$branch_num = 0;
++			# Branch data
++			if ($br_coverage && !$brexcl->{$line}) {
++				for my $b (@$branches) {
++					my $brcount = $b->{"count"};
++
++					if (!defined($brcount) || $unexec) {
++						$brcount = "-";
++					}
++					print($fd "BRDA:$line,0,$branch_num,".
++					      "$brcount\n");
++
++					$branch_num++;
++				}
++			}
++
++		}
++
++		print($fd "end_of_record\n");
++	}
++}
++
++
+ sub get_output_fd($$)
+ {
+ 	my ($outfile, $file) = @_;
+@@ -2243,6 +2387,8 @@ sub process_intermediate($$$)
+ 	my $srcdata;
+ 	my $is_graph = 0;
+ 	my ($out, $err, $rc);
++	my $json_basedir;
++	my $json_format;
+ 
+ 	info("Processing %s\n", abs2rel($file, $dir));
+ 
+@@ -2296,6 +2442,12 @@ sub process_intermediate($$$)
+ 		unlink($gcov_filename);
+ 	}
+ 
++	for my $gcov_filename (glob("*.gcov.json.gz")) {
++		read_intermediate_json($gcov_filename, \%data, \$json_basedir);
++		unlink($gcov_filename);
++		$json_format = 1;
++	}
++
+ 	if (!%data) {
+ 		warn("WARNING: GCOV did not produce any data for $file\n");
+ 		return;
+@@ -2304,6 +2456,8 @@ sub process_intermediate($$$)
+ 	# Determine base directory
+ 	if (defined($base_directory)) {
+ 		$base = $base_directory;
++	} elsif (defined($json_basedir)) {
++		$base = $json_basedir;
+ 	} else {
+ 		$base = $fdir;
+ 
+@@ -2331,7 +2485,11 @@ sub process_intermediate($$$)
+ 
+ 	# Generate output
+ 	$fd = get_output_fd($output_filename, $file);
+-	intermediate_text_to_info($fd, \%data, $srcdata);
++	if ($json_format) {
++		intermediate_json_to_info($fd, \%data, $srcdata);
++	} else {
++		intermediate_text_to_info($fd, \%data, $srcdata);
++	}
+ 	close($fd);
+ 
+ 	chdir($cwd);
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
index 26e797a..1471818 100755
--- a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
@@ -10,6 +10,9 @@
 
 RDEPENDS_${PN} += " \
     gcov \
+    gcov-symlinks \
+    libjson-perl \
+    libperlio-gzip-perl \
     perl \
     perl-module-filehandle \
     perl-module-getopt-std \
@@ -19,6 +22,7 @@
     perl-module-cwd \
     perl-module-errno \
     perl-module-file-basename \
+    perl-module-file-copy \
     perl-module-file-find \
     perl-module-file-path \
     perl-module-file-spec \
@@ -42,7 +46,11 @@
     perl-module-tie-hash \
 "
 
-SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
+SRC_URI = " \
+           http://downloads.sourceforge.net/ltp/${BP}.tar.gz \
+           file://0001-geninfo-Add-intermediate-text-format-support.patch \
+           file://0002-geninfo-Add-intermediate-JSON-format-support.patch \
+	   "
 
 SRC_URI[md5sum] = "0220d01753469f83921f8f41ae5054c1"
 SRC_URI[sha256sum] = "14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a"
@@ -51,3 +59,4 @@
     oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir}
 }
 
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.2.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb
rename to meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.2.bb
index 1a5c184..a954499 100644
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.2.bb
@@ -9,7 +9,7 @@
 S = "${WORKDIR}/git"
 B = "${S}"
 
-SRCREV = "9ecc1042109528051983261ffd491d45e7c471e1"
+SRCREV = "e64e752a28a4a41b0a43cba3bedf9571c22af807"
 SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master"
 
 inherit gettext autotools python3native
diff --git a/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch b/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
new file mode 100644
index 0000000..ba6fa2c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
@@ -0,0 +1,63 @@
+From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001
+From: Michael Meeks <michael.meeks@suse.com>
+Date: Fri, 9 Nov 2012 16:16:40 +0000
+Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays:
+ broadway/wayland
+
+---
+ src/canberra-gtk-module.c | 15 +++++++++++++++
+ src/canberra-gtk.c        |  5 +++++
+ 2 files changed, 20 insertions(+)
+
+--- a/src/canberra-gtk-module.c
++++ b/src/canberra-gtk-module.c
+@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDispla
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDispl
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisp
+         gboolean ret = FALSE;
+         Atom xembed;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return FALSE;
++#endif
++
+         /* Gnome Panel applets are XEMBED windows. We need to make sure we
+          * ignore them */
+ 
+--- a/src/canberra-gtk.c
++++ b/src/canberra-gtk.c
+@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDispla
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
diff --git a/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
index 72c93ab..1495051 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
@@ -11,6 +11,7 @@
 SRC_URI = " \
     http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \
     file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \
+    file://0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch \
 "
 SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072"
 SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
diff --git a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.2.2.bb b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.2.2.bb
rename to meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
index 365b40b..6fc5881 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.0.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e612690af2f575dfd02e2e91443cea23"
 
-SRCREV = "51cbda5f30e56c801c07fe3d3aba5d7fb9e6cca4"
+SRCREV = "02eace19a99ce3cd564ca4e379753d69af08c2c8"
 SRC_URI = "git://github.com/USCiLab/cereal.git"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb
rename to meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
index 0391deb..a6320da 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.3.bb
@@ -2,8 +2,8 @@
 
 DEPENDS += "autoconf-archive-native"
 
-SRC_URI[md5sum] = "585b4bb431f99c4ba9b3ee58b9d494c1"
-SRC_URI[sha256sum] = "21ae8fd1f8dafc2eb2ba50e652390cf533d21351419a7426255895cb52e21b1c"
+SRC_URI[md5sum] = "d4826720a8de13379436f9c207237bc0"
+SRC_URI[sha256sum] = "0ad080d1eb89c422cf13001293ffa72869ca13028e85dab5f6b3ba90f88da46d"
 
 # enable cxx bindings
 PACKAGECONFIG ?= "cxx"
diff --git a/meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
new file mode 100644
index 0000000..332be1b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
@@ -0,0 +1,52 @@
+Backport from Fedora Project.
+https://src.fedoraproject.org/rpms/libharu
+
+Fix the install destination of some files.
+
+Upstream-Status: inappropriate
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+diff -urp libharu-RELEASE_2_3_0/CMakeLists.txt libharu-RELEASE_2_3_0_cmake/CMakeLists.txt
+--- libharu-RELEASE_2_3_0/CMakeLists.txt	2013-10-30 20:11:59.000000000 +0700
++++ libharu-RELEASE_2_3_0_cmake/CMakeLists.txt	2017-06-01 15:56:06.533552795 +0700
+@@ -25,7 +25,7 @@ endif(MSVC)
+ 
+ # information about libharu
+ set(LIBHPDF_MAJOR 2)
+-set(LIBHPDF_MINOR 2)
++set(LIBHPDF_MINOR 3)
+ set(LIBHPDF_PATCH 0)
+ set(LIBHPDF_VERSION ${LIBHPDF_MAJOR}.${LIBHPDF_MINOR}.${LIBHPDF_PATCH})
+ set(LIBHPDF_DESCRIPTION "libHaru is a free, cross platform, open source library for generating PDF files.")
+@@ -210,9 +210,9 @@ set(
+ install(FILES ${haru_HDRS} DESTINATION include)
+ 
+ # install various files
+-install(FILES README CHANGES INSTALL DESTINATION .)
++install(FILES README CHANGES INSTALL DESTINATION ${SHARE_INSTALL_PREFIX}/libharu)
+ if(NOT DEVPAK)
+-  install(DIRECTORY if DESTINATION .)
++  install(DIRECTORY if DESTINATION ${SHARE_INSTALL_PREFIX}/libharu)
+ endif(NOT DEVPAK)
+ if(DEVPAK)
+   install(FILES ${CMAKE_BINARY_DIR}/libharu.DevPackage DESTINATION .)
+diff -urp libharu-RELEASE_2_3_0/src/CMakeLists.txt libharu-RELEASE_2_3_0_cmake/src/CMakeLists.txt
+--- libharu-RELEASE_2_3_0/src/CMakeLists.txt	2013-10-30 20:11:59.000000000 +0700
++++ libharu-RELEASE_2_3_0_cmake/src/CMakeLists.txt	2017-06-01 16:08:45.425105746 +0700
+@@ -90,11 +90,13 @@ if(LIBHPDF_SHARED)
+   target_link_libraries(${LIBHPDF_NAME} ${ADDITIONAL_LIBRARIES})
+   if(WIN32 AND NOT CYGWIN)
+   	set_target_properties(${LIBHPDF_NAME} PROPERTIES DEFINE_SYMBOL HPDF_DLL_MAKE)
++  else(WIN32 AND NOT CYGWIN)
++  	set_target_properties(${LIBHPDF_NAME} PROPERTIES SOVERSION ${LIBHPDF_VERSION})
+   endif(WIN32 AND NOT CYGWIN)
+   install(
+     TARGETS ${LIBHPDF_NAME}
+-    ARCHIVE DESTINATION lib
+-    LIBRARY DESTINATION lib
++    ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
++    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+     RUNTIME DESTINATION bin
+   )
+ endif(LIBHPDF_SHARED)
diff --git a/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
new file mode 100644
index 0000000..2d1a37c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "free PDF library"
+HOMEPAGE = "http://libharu.org"
+DESCRIPTION = "libHaru is a library for generating PDF files. \
+               It is free, open source, written in ANSI C and cross platform. "
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://README;md5=3ee6bc1f64d9cc7907f44840c8e50cb1"
+
+SRC_URI = "git://github.com/libharu/libharu.git;branch=2_3 \
+           file://libharu-RELEASE_2_3_0_cmake.patch \
+	   "
+
+SRCREV = "4ae1d5f4c84459f130bf1b1ef4c5c330af8eca5d"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+DEPENDS += "libpng zlib"
+
+do_install_append() {
+     mkdir -p ${D}/${datadir}/libharu
+     mv ${D}/libharu ${D}/${datadir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index b53ba46..f83d9c9 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -4,11 +4,11 @@
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
 
-# v0.18 + a single commit fixing the build
-SRCREV = "5090603d01779bb1717fb0c50953330e8770550f"
-PV = "0.18+git${SRCPV}"
+SRCREV = "5f5af2e417129ad8f4e05fc5c1b730f0694dca12"
+PV = "0.19+git${SRCPV}"
 
 SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb
rename to meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb
index 4daeaf7..94976d2 100644
--- a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.69.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.70.bb
@@ -8,8 +8,8 @@
 
 SRC_URI = "${GNU_MIRROR}/libmicrohttpd/${BPN}-${PV}.tar.gz \
 "
-SRC_URI[md5sum] = "3ce03db1f10007517cecf05e040069af"
-SRC_URI[sha256sum] = "fb9b6b148b787493e637d3083588711e65cbcb726fa02cee2cd543c5de27e37e"
+SRC_URI[md5sum] = "dcd6045ecb4ea18c120afedccbd1da74"
+SRC_URI[sha256sum] = "90d0a3d396f96f9bc41eb0f7e8187796049285fabef82604acd4879590977307"
 
 inherit autotools lib_package pkgconfig gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
new file mode 100644
index 0000000..50cd4d4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
@@ -0,0 +1,67 @@
+From 64fd25af5fea3a3c9c12122a2fd0fab3cd420f72 Mon Sep 17 00:00:00 2001
+From: asmitk01-in <asmitk01@in.ibm.com>
+Date: Wed, 5 Feb 2020 00:14:42 -0600
+Subject: [PATCH] libmimetic: Removing test directory from the Makefile
+
+The test directory is removed as there were errors (relocation errors)
+since the shared object files of libc++ and libc were not taken from the
+sysroot path but from the system's library path where the required
+version of the .so is not present.
+
+The files 'mimetic/codec/other_codecs.h' and 'mimetic/contenttype.cxx'
+contains changes that resolves errors when compiling on target system
+aarch64-yoe-linux-musl.
+
+Signed-off-by: asmitk01-in <asmitk01@in.ibm.com>
+Change-Id: I1822b36ad4a1fa5e7b165d8cac3a6e96aca11c35
+---
+ Makefile.am                  | 2 +-
+ mimetic/codec/other_codecs.h | 4 ++++
+ mimetic/contenttype.cxx      | 4 ++++
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 634bd4c..c7cbae7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ MAINTAINERCLEANFILES = Makefile Makefile.in config.cache
+ EXTRA_DIST=LICENSE m4
+-SUBDIRS = mimetic doc examples test win32
++SUBDIRS = mimetic doc examples win32
+ INCLUDES=-I$(top_srcdir)
+ ACLOCAL_AMFLAGS=-I m4
+
+diff --git a/mimetic/codec/other_codecs.h b/mimetic/codec/other_codecs.h
+index c4ccf3f..0fc88fd 100644
+--- a/mimetic/codec/other_codecs.h
++++ b/mimetic/codec/other_codecs.h
+@@ -8,6 +8,10 @@
+ #define _MIMETIC_CODEC_OTHER_CODECS_H_
+ #include <mimetic/codec/codec_base.h>
+
++#ifndef __GLIBC__
++    typedef unsigned int uint;
++#endif
++
+ namespace mimetic
+ {
+
+diff --git a/mimetic/contenttype.cxx b/mimetic/contenttype.cxx
+index 522082d..0577d44 100644
+--- a/mimetic/contenttype.cxx
++++ b/mimetic/contenttype.cxx
+@@ -13,6 +13,10 @@
+ #include <mimetic/tokenizer.h>
+ #include <mimetic/utils.h>
+
++#ifndef __GLIBC__
++    typedef unsigned int uint;
++#endif
++
+ namespace mimetic
+ {
+ using namespace std;
+-- 
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch
new file mode 100644
index 0000000..c7c8d62
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch
@@ -0,0 +1,49 @@
+From f8ab2b1aaa37f6ba9d527a99cb37b6ac2171e122 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Feb 2020 17:03:12 -0800
+Subject: [PATCH] mimetic: Check for MMAP_FAILED return from mmap()
+
+Avoids using greater than zero comparision on pointers
+
+Fixes
+mimetic/os/mmfile.cxx:60:14: error: ordered comparison between pointer and zero ('char *' and 'int')
+
+if(m_beg > 0)
+~~~~ ^ ~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mimetic/os/mmfile.cxx | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/mimetic/os/mmfile.cxx b/mimetic/os/mmfile.cxx
+index dfc95b7..ed4ff55 100644
+--- a/mimetic/os/mmfile.cxx
++++ b/mimetic/os/mmfile.cxx
+@@ -57,15 +57,13 @@ bool MMFile::open(int mode)
+ bool MMFile::map()
+ {
+     m_beg = (char*) mmap(0, m_st.st_size, PROT_READ, MAP_SHARED,m_fd,0);
+-    if(m_beg > 0)
+-    {
+-        m_end = m_beg + m_st.st_size;
+-        #if HAVE_MADVISE
+-        madvise(m_beg, m_st.st_size, MADV_SEQUENTIAL);
+-        #endif
+-        return true;
+-    }
+-    return false;
++    if(m_beg == MAP_FAILED)
++        return false;
++    m_end = m_beg + m_st.st_size;
++    #if HAVE_MADVISE
++    madvise(m_beg, m_st.st_size, MADV_SEQUENTIAL);
++    #endif
++    return true;
+ }
+ 
+ MMFile::~MMFile()
+-- 
+2.25.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
new file mode 100644
index 0000000..590c4eb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
@@ -0,0 +1,24 @@
+# Released under the MIT license.
+
+SUMMARY = "Mimetic Library for multi-part parsing"
+DESCRIPTION = "Email library (MIME) written in C++ designed to be easy to use and integrate but yet fast and efficient."
+AUTHOR = "Stefano Barbato <stefano@codesink.org>"
+HOMEPAGE = "http://www.codesink.org/mimetic_mime_library.html"
+BUGTRACKER = "https://github.com/LadislavSopko/mimetic/issues"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b49da7df0ca479ef01ff7f2d799eabee"
+
+SRCREV = "50486af99b4f9b35522d7b3de40b6ce107505279"
+SRC_URI += "git://github.com/LadislavSopko/mimetic/ \
+            file://0001-libmimetic-Removing-test-directory-from-the-Makefile.patch \
+            file://0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch \
+           "
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+S = "${WORKDIR}/git"
+
+CXXFLAGS += "-Wno-narrowing"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
index 655db49..7fe0640 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.10.bb
@@ -12,6 +12,8 @@
 SRC_URI = "git://github.com/OpenSC/libp11.git"
 SRCREV = "973d31f3f58d5549ddd8b1f822ce8f72186f9d68"
 
+UPSTREAM_CHECK_GITTAGREGEX = "libp11-(?P<pver>\d+(\.\d+)+)"
+
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.0.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb
rename to meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.0.bb
index c2f28fe..e9d34ee 100644
--- a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
 
 SRC_URI = "git://github.com/librsync/librsync.git"
-SRCREV = "5917692418657dc78c9cbde3a8db4c85f25b9c8d"
+SRCREV = "028d9432d05ba4b75239e0ba35bcb36fbfc17e35"
 S = "${WORKDIR}/git"
 
 DEPENDS = "popt"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
rename to meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
index 6040ec9..39ed8a8 100644
--- a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
@@ -2,12 +2,12 @@
 HOMEPAGE = "http://www.libssh.org"
 SECTION = "libs"
 LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dabb4958b830e5df11d2b0ed8ea255a0"
 
 DEPENDS = "zlib openssl libgcrypt"
 
 SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=stable-0.8"
-SRCREV = "789df0b7d0c7abd6b85db9fc5247e146e3d4ddba"
+SRCREV = "04685a74df9ce1db1bc116a83a0da78b4f4fa1f8"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch
new file mode 100644
index 0000000..e27e4f3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-use-python3-interpreter.patch
@@ -0,0 +1,28 @@
+From 571c141b434dff13494c6a3afe621f63a8e610e9 Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 14:29:34 +0000
+Subject: [PATCH] team_basic_test.py: use python3 interpreter
+
+Use python3 since python2 is EOL and has been removed from several
+distributions.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ scripts/team_basic_test.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index b05be9e..ad980e8 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ """
+ Basic test.
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
index 4ba5acf..b5c6f4e 100644
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-python $(dirname $0)/team_basic_test.py
+python3 $(dirname $0)/team_basic_test.py
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.30.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb
rename to meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.30.bb
index 821ca19..9cd02b0 100644
--- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.29.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.30.bb
@@ -11,9 +11,10 @@
            file://0001-include-sys-select.h-for-fd_set-definition.patch \
            file://0002-teamd-Re-adjust-include-header-order.patch \
            file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
+           file://0001-team_basic_test.py-use-python3-interpreter.patch \
            file://run-ptest \
            "
-SRCREV = "e897f02bf2403d4859a99e090e34ea768b4c0540"
+SRCREV = "471fb50d206e5a3f2eef9e4247329b51edc5c493"
 
 S = "${WORKDIR}/git"
 
@@ -32,7 +33,7 @@
 "
 
 RDEPENDS_${PN}-utils = "bash"
-RDEPENDS_${PN}-ptest = "python"
+RDEPENDS_${PN}-ptest = "python3-core"
 
 do_install_ptest() {
 	install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.0.0.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb
rename to meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.0.0.bb
index 9e197a9..a2491cf 100644
--- a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_8.0.0.bb
@@ -6,7 +6,7 @@
 
 SRC_URI = "git://github.com/leethomason/tinyxml2.git"
 
-SRCREV = "9c740e8d2341bd46dbe8e87053cdb4d931971967"
+SRCREV = "bf15233ad88390461f6ab0dbcf046cce643c5fcb"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
index ea54e75..0fb4a6e 100644
--- a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -12,7 +12,7 @@
 SRCREV = "0ac9091c1ff7a52d5435a4f4449e82637142e06e"
 S = "${WORKDIR}/git"
 
-inherit distutils
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "distutils", "", d)}
 
 EXTRA_OEMAKE += "DESTDIR=${D}"
 
@@ -64,3 +64,10 @@
 # http://errors.yoctoproject.org/Errors/Details/184712/
 # python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
 CLEANBROKEN = "1"
+
+python() {
+    if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+        raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
+
+
diff --git a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
similarity index 68%
rename from meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
rename to meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
index 19b9446..c6f9404 100644
--- a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
@@ -3,12 +3,11 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 
-PRC = "rc5"
-SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${PRC}.tar.gz \
+SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz \
            file://fix-pc.patch;striplevel=2 \
           "
-SRC_URI[md5sum] = "58b4591a2f3e7ef3d5e3e7cfb3a81a62"
-SRC_URI[sha256sum] = "a611d99a20af6676c60219762771c0bfac90f4879bbde70038ece75338b588ec"
+SRC_URI[md5sum] = "b9e2cee932da987212f2c74b767b4d8b"
+SRC_URI[sha256sum] = "2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d"
 
 S = "${WORKDIR}/${BPN}"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch
new file mode 100644
index 0000000..969bfc1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch
@@ -0,0 +1,110 @@
+From 430982376a544bbccaef5006fab94bbc2f1d1711 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 13 Apr 2020 07:12:44 +0000
+Subject: [PATCH] gcov_merge.py/scov_merge.py: switch to python3
+
+Make gcov_merge.py and scov_merge.py port to python3.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tools/scripts/gcov_merge.py | 12 ++++++------
+ tools/scripts/scov_merge.py | 12 ++++++------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/tools/scripts/gcov_merge.py b/tools/scripts/gcov_merge.py
+index 0ac9bed..9f1cb8c 100644
+--- a/tools/scripts/gcov_merge.py
++++ b/tools/scripts/gcov_merge.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Merge gcov graph from several test cases. This can be used to check
+ # the coverage of several test cases.
+@@ -11,7 +11,7 @@
+ import sys
+ 
+ def die(str):
+-    print str
++    print(str)
+     sys.exit(-1)
+ 
+ def die_on(cond, str):
+@@ -55,11 +55,11 @@ def merge(gcls1, gcls2):
+         gcl1.merge(gcl2)
+ 
+ def gcov_merge(fns, of):
+-    f = file(fns[0])
++    f = open(fns[0])
+     gcls_base = parse(f)
+ 
+     for fn in fns[1:]:
+-        f = file(fn)
++        f = open(fn)
+         gcls = parse(f)
+         merge(gcls_base, gcls)
+ 
+@@ -67,10 +67,10 @@ def gcov_merge(fns, of):
+         gcl.write(of)
+ 
+ def usage():
+-    print 'Usage: %s <gcov graph files>' % (sys.argv[0])
++    print('Usage: %s <gcov graph files>' % (sys.argv[0]))
+ 
+ if __name__ == '__main__':
+     if len(sys.argv) <= 1:
+         usage()
+-        exit -1
++        sys.exit(-1)
+     gcov_merge(sys.argv[1:], sys.stdout)
+diff --git a/tools/scripts/scov_merge.py b/tools/scripts/scov_merge.py
+index f83b922..bbcf760 100644
+--- a/tools/scripts/scov_merge.py
++++ b/tools/scripts/scov_merge.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Merge mce serverity coverage file from several test cases. This can
+ # be used to check the coverage of several test cases.
+@@ -11,7 +11,7 @@
+ import sys
+ 
+ def die(str):
+-    print str
++    print(str)
+     sys.exit(-1)
+ 
+ def die_on(cond, str):
+@@ -47,11 +47,11 @@ def merge(gcls1, gcls2):
+         gcl1.merge(gcl2)
+ 
+ def scov_merge(fns, of):
+-    f = file(fns[0])
++    f = open(fns[0])
+     gcls_base = parse(f)
+ 
+     for fn in fns[1:]:
+-        f = file(fn)
++        f = open(fn)
+         gcls = parse(f)
+         merge(gcls_base, gcls)
+ 
+@@ -59,10 +59,10 @@ def scov_merge(fns, of):
+         gcl.write(of)
+ 
+ def usage():
+-    print 'Usage: %s <severities coverage files>' % (sys.argv[0])
++    print('Usage: %s <severities coverage files>' % (sys.argv[0]))
+ 
+ if __name__ == '__main__':
+     if len(sys.argv) <= 1:
+         usage()
+-        exit -1
++        sys.exit(-1)
+     scov_merge(sys.argv[1:], sys.stdout)
+-- 
+2.24.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
index 007b394..35fb944 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb
@@ -12,6 +12,7 @@
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git \
            file://makefile-remove-ldflags.patch \
+           file://0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch \
           "
 SRCREV = "7643baf6c3919b3d727e6ba6c2e545dc6a653307"
 PV = "20190917+git${SRCPV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_168.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb
rename to meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_168.bb
index 3b4ea1f..e2ef6ea 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_166.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_168.bb
@@ -9,7 +9,7 @@
     file://run-ptest \
 "
 
-SRCREV = "ee90ff20ce6a4d5e016aa249ce8b37f359f9fda4"
+SRCREV = "078d593b8b0c7d44afdd439aacfad6682913038f"
 
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6"
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit/monit b/meta-openembedded/meta-oe/recipes-support/monit/monit/monit
new file mode 100644
index 0000000..394704e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit/monit
@@ -0,0 +1,42 @@
+#! /bin/sh 
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/monit and type
+# > update-rc.d monit defaults 89
+#
+monit=/usr/bin/monit
+pidfile=/var/run/monit.pid
+monit_args="-c /etc/monitrc"
+
+test -x "$monit" || exit 0
+
+case "$1" in
+  start)
+    echo -n "Starting Monit"
+    start-stop-daemon --start --quiet --exec $monit -- $monit_args
+    RETVAL=$?
+    echo "."
+    ;;
+  stop)
+    echo -n "Stopping Monit"
+    start-stop-daemon --stop --quiet --pidfile $pidfile
+    RETVAL=$?
+    echo "."
+    ;;
+  restart)
+    $0 stop
+    $0 start
+    RETVAL=$?
+    ;;
+  status)
+    $monit $monit_args status
+    RETVAL=$?
+    echo "."
+    ;;
+  *)
+    echo "Usage: $0 {start|stop|restart|status}"
+    exit 1
+esac
+
+exit $RETVAL
+
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc b/meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc
new file mode 100644
index 0000000..f8d6a43
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit/monitrc
@@ -0,0 +1,44 @@
+###############################################################################
+## Monit control file
+###############################################################################
+##
+## Comments begin with a '#' and extend through the end of the line. Keywords
+## are case insensitive. All path's MUST BE FULLY QUALIFIED, starting with '/'.
+##
+## Below you will find examples of some frequently used statements. For
+## information about the control file and a complete list of statements and
+## options, please have a look in the Monit manual.
+##
+##
+###############################################################################
+## Global section
+###############################################################################
+##
+## Start Monit in the background (run as a daemon):
+#
+set daemon  30              # check services at 30 seconds intervals
+#   with start delay 240    # optional: delay the first check by 4-minutes (by
+#                           # default Monit check immediately after Monit start)
+#
+#
+## Set syslog logging. If you want to log to a standalone log file instead,
+## specify the full path to the log file
+#
+set log syslog
+
+set httpd port 2812
+    allow 0.0.0.0/0        # allow localhost to connect to the server and
+    allow admin:monit      # require user 'admin' with password 'monit'
+    #with ssl {            # enable SSL/TLS and set path to server certificate
+    #    pemfile: /etc/ssl/certs/monit.pem
+    #}
+
+###############################################################################
+## Includes
+###############################################################################
+##
+## It is possible to include additional configuration parts from other files or
+## directories.
+#
+include /etc/monit.d/*
+
diff --git a/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb
new file mode 100644
index 0000000..a954682
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "Monit is a free open source utility for managing and monitoring, \
+processes, programs, files, directories and filesystems on a UNIX system. \
+Monit conducts automatic maintenance and repair and can execute meaningful \
+causal actions in error situations."
+
+HOMEPAGE = "http://mmonit.com/monit/"
+
+LICENSE = "AGPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51 \
+                    file://libmonit/COPYING;md5=2405f1c59ed1bf3714cebdb40162ce92"
+
+SRC_URI = " \
+	https://mmonit.com/monit/dist/monit-${PV}.tar.gz \
+	file://monit \
+	file://monitrc \
+"
+
+SRC_URI[md5sum] = "9f7dc65e902c103e4c5891354994c3df"
+SRC_URI[sha256sum] = "87fc4568a3af9a2be89040efb169e3a2e47b262f99e78d5ddde99dd89f02f3c2"
+
+DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
+
+inherit autotools-brokensep systemd update-rc.d
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+
+EXTRA_OECONF = "\
+    libmonit_cv_setjmp_available=no \
+    libmonit_cv_vsnprintf_c99_conformant=no \
+    --with-ssl-lib-dir=${STAGING_LIBDIR} \
+    --with-ssl-incl-dir=${STAGING_INCDIR} \
+"
+
+SYSTEMD_SERVICE_${PN} = "monit.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "monit"
+INITSCRIPT_PARAMS_${PN} = "defaults 89"
+
+do_install_append() {
+
+    # Configuration file
+    install -Dm 0600 ${WORKDIR}/monitrc ${D}${sysconfdir}/monitrc
+
+    # SystemD
+    install -Dm 0644 ${S}/system/startup/monit.service.in ${D}${systemd_system_unitdir}/monit.service
+    sed -i -e 's,@prefix@,${exec_prefix},g' ${D}${systemd_unitdir}/system/monit.service
+
+    # SysV
+    install -Dm 0755 ${WORKDIR}/monit ${D}${sysconfdir}/init.d/monit
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.9.2.bb
similarity index 73%
rename from meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb
rename to meta-openembedded/meta-oe/recipes-support/nano/nano_4.9.2.bb
index 18121be..2b236ba 100644
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.9.2.bb
@@ -12,8 +12,10 @@
 PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
 
 SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-SRC_URI[md5sum] = "9650dd3eb0adbab6aaa748a6f1398ccb"
-SRC_URI[sha256sum] = "2af222e0354848ffaa3af31b5cd0a77917e9cb7742cd073d762f3c32f0f582c7"
+SRC_URI[md5sum] = "10df0100ebf4aa7bb4806428c11751eb"
+SRC_URI[sha256sum] = "d8a25eea942ecee2d57b8e037eb4b28f030f818b78773b8fcb994ed5835d2ef6"
+
+UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
 
 inherit autotools gettext pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
new file mode 100644
index 0000000..d2b9bf6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
@@ -0,0 +1,35 @@
+From 147f3c2acbd96d44025cec11800ded0282327764 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 18 Sep 2017 17:22:43 -0700
+Subject: [PATCH] md: Fix build with musl
+
+The MIPS specific header <sgidefs.h> is not provided by musl
+linux kernel headers provide <asm/sgidefs.h> which has same definitions
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ pr/include/md/_linux.cfg | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/pr/include/md/_linux.cfg
++++ b/pr/include/md/_linux.cfg
+@@ -499,7 +499,7 @@
+ #elif defined(__mips__)
+ 
+ /* For _ABI64 */
+-#include <sgidefs.h>
++#include <asm/sgidefs.h>
+ 
+ #ifdef __MIPSEB__
+ #define IS_BIG_ENDIAN 1
+@@ -511,7 +511,7 @@
+ #error "Unknown MIPS endianness."
+ #endif
+ 
+-#if _MIPS_SIM == _ABI64
++#if _MIPS_SIM == _MIPS_SIM_ABI64
+ 
+ #define IS_64
+ 
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
new file mode 100644
index 0000000..3a04d42
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
@@ -0,0 +1,102 @@
+From 95bda64fb4cf1825fea745e918cfe8202843f0ba Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Sat, 30 Jan 2016 07:18:02 +0100
+Subject: [PATCH] Add nios2 support
+
+Add support for the nios2 CPU.
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1244421 ]
+---
+ nspr/pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++++++++++
+ nspr/pr/include/md/_linux.h   | 14 ++++++++++++++
+ 2 files changed, 59 insertions(+)
+
+Index: nspr/pr/include/md/_linux.cfg
+===================================================================
+--- nspr.orig/pr/include/md/_linux.cfg
++++ nspr/pr/include/md/_linux.cfg
+@@ -975,6 +975,51 @@
+ #define PR_BYTES_PER_WORD_LOG2   2
+ #define PR_BYTES_PER_DWORD_LOG2  3
+ 
++#elif defined(__nios2__)
++
++#define IS_LITTLE_ENDIAN    1
++#undef  IS_BIG_ENDIAN
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   4
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   4
++#define PR_BYTES_PER_DWORD  8
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    32
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    32
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   5
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   5
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    4
++#define PR_ALIGN_OF_INT64   4
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  4
++#define PR_ALIGN_OF_POINTER 4
++#define PR_ALIGN_OF_WORD    4
++
++#define PR_BYTES_PER_WORD_LOG2   2
++#define PR_BYTES_PER_DWORD_LOG2  3
++
+ #elif defined(__or1k__)
+ 
+ #undef  IS_LITTLE_ENDIAN
+Index: nspr/pr/include/md/_linux.h
+===================================================================
+--- nspr.orig/pr/include/md/_linux.h
++++ nspr/pr/include/md/_linux.h
+@@ -55,6 +55,8 @@
+ #define _PR_SI_ARCHITECTURE "avr32"
+ #elif defined(__m32r__)
+ #define _PR_SI_ARCHITECTURE "m32r"
++#elif defined(__nios2__)
++#define _PR_SI_ARCHITECTURE "nios2"
+ #elif defined(__or1k__)
+ #define _PR_SI_ARCHITECTURE "or1k"
+ #elif defined(__riscv) && (__riscv_xlen == 32)
+@@ -129,6 +131,18 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
+ #define _MD_ATOMIC_SET                _PR_x86_64_AtomicSet
+ #endif
+ 
++#if defined(__nios2__)
++#if defined(__GNUC__)
++/* Use GCC built-in functions */
++#define _PR_HAVE_ATOMIC_OPS
++#define _MD_INIT_ATOMIC()
++#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
++#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
++#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
++#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
++#endif
++#endif
++
+ #if defined(__or1k__)
+ #if defined(__GNUC__)
+ /* Use GCC built-in functions */
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
new file mode 100644
index 0000000..90fe45f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
@@ -0,0 +1,103 @@
+From 8a592e4ead4ed6befe6044da3dd2dc7523c33905 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Fri, 16 Nov 2018 13:52:49 +0800
+Subject: [PATCH] Makefile.in: remove _BUILD_STRING and _BUILD_TIME
+
+Remove _BUILD_STRING and _BUILD_TIME to avoid
+adding timestamp to _pl_bld.h which can result
+in adding timestamp in library file such as
+libnspr4.so.
+ $ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
+ [snip]
+  0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
+ [snip]
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ lib/ds/Makefile.in        | 8 +-------
+ lib/libc/src/Makefile.in  | 8 +-------
+ lib/prstreams/Makefile.in | 8 +-------
+ pr/src/Makefile.in        | 8 +-------
+ 4 files changed, 4 insertions(+), 28 deletions(-)
+
+diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in
+index e737791..b578476 100644
+--- a/lib/ds/Makefile.in
++++ b/lib/ds/Makefile.in
+@@ -114,13 +114,7 @@ GARBAGE += $(TINC)
+ 
+ $(TINC):
+ 	@$(MAKE_OBJDIR)
+-	@$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+-	@if test ! -z "$(SH_NOW)"; then \
+-	    $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+-	else \
+-	    true; \
+-	fi
+-	@$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++	@$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+ 
+ 
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/lib/libc/src/Makefile.in b/lib/libc/src/Makefile.in
+index e8a6d9f..978ed28 100644
+--- a/lib/libc/src/Makefile.in
++++ b/lib/libc/src/Makefile.in
+@@ -116,13 +116,7 @@ GARBAGE += $(TINC)
+ 
+ $(TINC):
+ 	@$(MAKE_OBJDIR)
+-	@$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+-	@if test ! -z "$(SH_NOW)"; then \
+-	    $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+-	else \
+-	    true; \
+-	fi
+-	@$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++	@$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+ 
+ 
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/lib/prstreams/Makefile.in b/lib/prstreams/Makefile.in
+index aeb2944..f318097 100644
+--- a/lib/prstreams/Makefile.in
++++ b/lib/prstreams/Makefile.in
+@@ -116,13 +116,7 @@ endif
+ 
+ $(TINC):
+ 	@$(MAKE_OBJDIR)
+-	@$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+-	@if test ! -z "$(SH_NOW)"; then \
+-	    $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+-	else \
+-	    true; \
+-	fi
+-	@$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++	@$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+ 
+ 
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
+index 19c5a69..b4ac31c 100644
+--- a/pr/src/Makefile.in
++++ b/pr/src/Makefile.in
+@@ -326,13 +326,7 @@ GARBAGE += $(TINC)
+ 
+ $(TINC):
+ 	@$(MAKE_OBJDIR)
+-	@$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+-	@if test ! -z "$(SH_NOW)"; then \
+-	    $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+-	else \
+-	    true; \
+-	fi
+-	@$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++	@$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+ 
+ 
+ $(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
new file mode 100644
index 0000000..f12acc8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
@@ -0,0 +1,52 @@
+Fix build failure on x86_64
+
+When the target_cpu is x86_64, we should assume that the pkg uses 64bit,
+only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a
+opposite logic before.
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
+Upstream-Status: Pending
+---
+ configure.in |   12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -1875,28 +1875,24 @@ tools are selected during the Xcode/Deve
+         PR_MD_ASFILES=os_Linux_ia64.s
+         ;;
+     x86_64)
+-        if test -n "$USE_64"; then
+-            PR_MD_ASFILES=os_Linux_x86_64.s
+-        elif test -n "$USE_X32"; then
++        if test -n "$USE_X32"; then
++            AC_DEFINE(i386)
+             PR_MD_ASFILES=os_Linux_x86_64.s
+             CC="$CC -mx32"
+             CXX="$CXX -mx32"
+         else
+-            AC_DEFINE(i386)
+-            PR_MD_ASFILES=os_Linux_x86.s
+-            CC="$CC -m32"
+-            CXX="$CXX -m32"
++            PR_MD_ASFILES=os_Linux_x86_64.s
+         fi
+         ;;
+     ppc|powerpc)
+         PR_MD_ASFILES=os_Linux_ppc.s
+         ;;
+     powerpc64)
+-        if test -n "$USE_64"; then
++        if test -n "$USE_N32"; then
++            PR_MD_ASFILES=os_Linux_ppc.s
++        else
+             CC="$CC -m64"
+             CXX="$CXX -m64"
+-        else
+-            PR_MD_ASFILES=os_Linux_ppc.s
+         fi
+         ;;
+     esac    
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
new file mode 100644
index 0000000..1f15d19
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
@@ -0,0 +1,11 @@
+os_libs=-lpthread -ldl
+prefix=OEPREFIX
+exec_prefix=OEEXECPREFIX
+libdir=OELIBDIR
+includedir=OEINCDIR
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: NSPRVERSION
+Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl
+Cflags: -I${includedir}/nspr
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
new file mode 100644
index 0000000..7ba59ed
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
@@ -0,0 +1,26 @@
+Author: Andrei Gherzan <andrei@gherzan.ro>
+Date:   Thu Feb 9 00:03:38 2012 +0200
+
+Avoid QA warnings by removing hardcoded rpath from binaries.
+
+[...]
+WARNING: QA Issue: package nspr contains bad RPATH {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/nspr-4.8.9/mozilla/nsprpub/pr/tests/../../dist/lib
+in file {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/packages-split/nspr/usr/lib/nspr/tests/multiwait
+[...]
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+Upstream-Status: Pending
+
+Index: nspr/pr/tests/Makefile.in
+===================================================================
+--- nspr.orig/pr/tests/Makefile.in
++++ nspr/pr/tests/Makefile.in
+@@ -316,7 +316,7 @@ ifeq ($(OS_ARCH), SunOS)
+ endif # SunOS
+ 
+ ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
+-    LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
++    LDOPTS += -Xlinker
+     ifeq ($(USE_PTHREADS),1)
+         EXTRA_LIBS = -lpthread
+     endif
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
new file mode 100644
index 0000000..bde715c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
@@ -0,0 +1,19 @@
+the $srcdir is not defined at the time of gnu-configurize.
+
+Upstream-Status: Inappropriate [OE-Core specific]
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -8,7 +8,7 @@ AC_PREREQ(2.61)
+ AC_INIT
+ AC_CONFIG_SRCDIR([pr/include/nspr.h])
+ 
+-AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
++AC_CONFIG_AUX_DIR(build/autoconf)
+ AC_CANONICAL_TARGET
+ 
+ dnl ========================================================
diff --git a/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb b/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb
new file mode 100644
index 0000000..1de26e1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nspr/nspr_4.25.bb
@@ -0,0 +1,197 @@
+SUMMARY = "Netscape Portable Runtime Library"
+HOMEPAGE =  "http://www.mozilla.org/projects/nspr/"
+LICENSE = "GPL-2.0 | MPL-2.0 | LGPL-2.1"
+LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
+                    file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
+SECTION = "libs/network"
+
+SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
+           file://remove-rpath-from-tests.patch \
+           file://fix-build-on-x86_64.patch \
+           file://remove-srcdir-from-configure-in.patch \
+           file://0002-Add-nios2-support.patch \
+           file://0001-md-Fix-build-with-musl.patch \
+           file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
+           file://nspr.pc.in \
+"
+
+CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
+                                          -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
+                                          -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
+                                          -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
+
+UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
+UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
+
+SRC_URI[md5sum] = "4ca4d75a424f30fcdc766296bb103d17"
+SRC_URI[sha256sum] = "0bc309be21f91da4474c56df90415101c7f0c7c7cab2943cd943cd7896985256"
+
+CVE_PRODUCT = "netscape_portable_runtime"
+
+S = "${WORKDIR}/nspr-${PV}/nspr"
+
+RDEPENDS_${PN}-dev += "perl"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+TESTS = " \
+    accept \
+    acceptread \
+    acceptreademu \
+    affinity \
+    alarm \
+    anonfm \
+    atomic \
+    attach \
+    bigfile \
+    cleanup \
+    cltsrv  \
+    concur \
+    cvar \
+    cvar2 \
+    dlltest \
+    dtoa \
+    errcodes \
+    exit \
+    fdcach \
+    fileio \
+    foreign \
+    formattm \
+    fsync \
+    gethost \
+    getproto \
+    i2l \
+    initclk \
+    inrval \
+    instrumt \
+    intrio \
+    intrupt \
+    io_timeout \
+    ioconthr \
+    join \
+    joinkk \
+    joinku \
+    joinuk \
+    joinuu \
+    layer \
+    lazyinit \
+    libfilename \
+    lltest \
+    lock \
+    lockfile \
+    logfile \
+    logger \
+    many_cv \
+    multiwait \
+    nameshm1 \
+    nblayer \
+    nonblock \
+    ntioto \
+    ntoh \
+    op_2long \
+    op_excl \
+    op_filnf \
+    op_filok \
+    op_nofil \
+    parent \
+    parsetm \
+    peek \
+    perf \
+    pipeping \
+    pipeping2 \
+    pipeself \
+    poll_nm \
+    poll_to \
+    pollable \
+    prftest \
+    primblok \
+    provider \
+    prpollml \
+    ranfile \
+    randseed \
+    reinit \
+    rwlocktest \
+    sel_spd \
+    selct_er \
+    selct_nm \
+    selct_to \
+    selintr \
+    sema \
+    semaerr \
+    semaping \
+    sendzlf \
+    server_test \
+    servr_kk \
+    servr_uk \
+    servr_ku \
+    servr_uu \
+    short_thread \
+    sigpipe \
+    socket \
+    sockopt \
+    sockping \
+    sprintf \
+    stack \
+    stdio \
+    str2addr \
+    strod \
+    switch \
+    system \
+    testbit \
+    testfile \
+    threads \
+    timemac \
+    timetest \
+    tpd \
+    udpsrv \
+    vercheck \
+    version \
+    writev \
+    xnotify \
+    zerolen"
+
+inherit autotools multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+# Do not install nspr in usr/include, but in usr/include/nspr, the
+# preferred path upstream.
+EXTRA_OECONF += "--includedir=${includedir}/nspr"
+
+do_compile_prepend() {
+	oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
+}
+
+do_compile_append() {
+	oe_runmake -C pr/tests
+}
+
+do_install_append() {
+    install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
+    sed -i  \
+    -e 's:NSPRVERSION:${PV}:g' \
+    -e 's:OEPREFIX:${prefix}:g' \
+    -e 's:OELIBDIR:${libdir}:g' \
+    -e 's:OEINCDIR:${includedir}:g' \
+    -e 's:OEEXECPREFIX:${exec_prefix}:g' \
+    ${D}${libdir}/pkgconfig/nspr.pc
+
+    mkdir -p ${D}${libdir}/nspr/tests
+    install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
+    install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
+    cd ${B}/pr/tests
+    install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
+
+    # delete compile-et.pl and perr.properties from ${bindir} because these are
+    # only used to generate prerr.c and prerr.h files from prerr.et at compile
+    # time
+    rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
+}
+
+FILES_${PN} = "${libdir}/lib*.so"
+FILES_${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
+                ${includedir}/* ${datadir}/aclocal/* "
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000..c380c14
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -0,0 +1,52 @@
+From 5595e9651aca39af945931c73eb524a0f8bd130d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 18 Dec 2019 12:29:50 +0100
+Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto
+
+Not all current hardware supports it, particularly anything
+prior to armv8 does not.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ nss/lib/freebl/Makefile | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/nss/lib/freebl/Makefile
++++ b/nss/lib/freebl/Makefile
+@@ -125,6 +125,9 @@ else
+         DEFINES += -DNSS_X86
+ endif
+ endif
++
++ifdef NSS_USE_ARM_HW_CRYPTO
++    DEFINES += -DNSS_USE_ARM_HW_CRYPTO
+ ifeq ($(CPU_ARCH),aarch64)
+     DEFINES += -DUSE_HW_AES
+     EXTRA_SRCS += aes-armv8.c gcm-aarch64.c
+@@ -146,6 +149,7 @@ ifeq ($(CPU_ARCH),arm)
+         endif
+     endif
+ endif
++endif
+ 
+ ifeq ($(OS_TARGET),OSF1)
+     DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
+--- a/nss/lib/freebl/gcm.c
++++ b/nss/lib/freebl/gcm.c
+@@ -17,6 +17,7 @@
+ 
+ #include <limits.h>
+ 
++#ifdef NSS_USE_ARM_HW_CRYPTO
+ /* old gcc doesn't support some poly64x2_t intrinsic */
+ #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
+     (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
+@@ -25,6 +26,7 @@
+ /* We don't test on big endian platform, so disable this on big endian. */
+ #define USE_ARM_GCM
+ #endif
++#endif
+ 
+ /* Forward declarations */
+ SECStatus gcm_HashInit_hw(gcmHashContext *ghash);
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
new file mode 100644
index 0000000..d540339
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
@@ -0,0 +1,48 @@
+From 0cf47ee432cc26a706864fcc09b2c3adc342a679 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 22 Feb 2017 11:36:11 +0200
+Subject: [PATCH] nss: fix support cross compiling
+
+Let some make variables be assigned from outside makefile.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ nss/coreconf/arch.mk    | 2 +-
+ nss/lib/freebl/Makefile | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
+index 06c276f..9c1eb51 100644
+--- a/nss/coreconf/arch.mk
++++ b/nss/coreconf/arch.mk
+@@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m)
+ ifeq ($(OS_TEST),i86pc)
+     OS_RELEASE := $(shell uname -r)_$(OS_TEST)
+ else
+-    OS_RELEASE := $(shell uname -r)
++    OS_RELEASE ?= $(shell uname -r)
+ endif
+ 
+ #
+diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
+index 0ce1425..ebeb411 100644
+--- a/nss/lib/freebl/Makefile
++++ b/nss/lib/freebl/Makefile
+@@ -36,6 +36,12 @@ ifdef USE_64
+ 	DEFINES += -DNSS_USE_64
+ endif
+ 
++ifeq ($(OS_TEST),mips)
++ifndef USE_64
++       DEFINES += -DNS_PTR_LE_32
++endif
++endif
++
+ ifdef USE_ABI32_FPU
+ 	DEFINES += -DNSS_USE_ABI32_FPU
+ endif
+-- 
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db
new file mode 100644
index 0000000..7d4bcf2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-cert9.db
Binary files differ
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db
new file mode 100644
index 0000000..d47f08d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/blank-key4.db
Binary files differ
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
new file mode 100644
index 0000000..de812d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -0,0 +1,33 @@
+clang 3.9 add this warning to rightly flag undefined
+behavior, we relegate this to be just a warning instead
+of error and keep the behavior as it was. Right fix would
+be to not pass enum to the function with variadic arguments
+as last named argument
+
+Fixes errors like
+ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
+        va_start(ap, responseType0);
+                     ^
+ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
+                                SECOidTag responseType0, ...)
+
+see
+https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
+for more details
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: nss-3.37.1/nss/coreconf/Werror.mk
+===================================================================
+--- nss-3.37.1.orig/nss/coreconf/Werror.mk
++++ nss-3.37.1/nss/coreconf/Werror.mk
+@@ -56,7 +56,7 @@ ifndef WARNING_CFLAGS
+     ifdef CC_IS_CLANG
+       # -Qunused-arguments : clang objects to arguments that it doesn't understand
+       #    and fixing this would require rearchitecture
+-      WARNING_CFLAGS += -Qunused-arguments
++      WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
+       # -Wno-parentheses-equality : because clang warns about macro expansions
+       WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
+       ifdef BUILD_OPT
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
new file mode 100644
index 0000000..547594d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
@@ -0,0 +1,110 @@
+nss: fix incorrect shebang of perl
+
+Replace incorrect shebang of perl with `#!/usr/bin/env perl'.
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Upstream-Status: Pending
+---
+ nss/cmd/smimetools/smime  | 2 +-
+ nss/coreconf/cpdist.pl    | 2 +-
+ nss/coreconf/import.pl    | 2 +-
+ nss/coreconf/jniregen.pl  | 2 +-
+ nss/coreconf/outofdate.pl | 2 +-
+ nss/coreconf/release.pl   | 2 +-
+ nss/coreconf/version.pl   | 2 +-
+ nss/tests/clean_tbx       | 2 +-
+ nss/tests/path_uniq       | 2 +-
+ 9 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/nss/cmd/smimetools/smime b/nss/cmd/smimetools/smime
+--- a/nss/cmd/smimetools/smime
++++ b/nss/cmd/smimetools/smime
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+ 
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/cpdist.pl b/nss/coreconf/cpdist.pl
+index 800edfb..652187f 100755
+--- a/nss/coreconf/cpdist.pl
++++ b/nss/coreconf/cpdist.pl
+@@ -1,4 +1,4 @@
+-#! /usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/import.pl b/nss/coreconf/import.pl
+index dd2d177..428eaa5 100755
+--- a/nss/coreconf/import.pl
++++ b/nss/coreconf/import.pl
+@@ -1,4 +1,4 @@
+-#! /usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/jniregen.pl b/nss/coreconf/jniregen.pl
+index 2039180..5f4f69c 100755
+--- a/nss/coreconf/jniregen.pl
++++ b/nss/coreconf/jniregen.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/outofdate.pl b/nss/coreconf/outofdate.pl
+index 33d80bb..01fc097 100755
+--- a/nss/coreconf/outofdate.pl
++++ b/nss/coreconf/outofdate.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/release.pl b/nss/coreconf/release.pl
+index 7cde19d..b5df2f6 100755
+--- a/nss/coreconf/release.pl
++++ b/nss/coreconf/release.pl
+@@ -1,4 +1,4 @@
+-#! /usr/local/bin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/version.pl b/nss/coreconf/version.pl
+index d2a4942..79359fe 100644
+--- a/nss/coreconf/version.pl
++++ b/nss/coreconf/version.pl
+@@ -1,4 +1,4 @@
+-#!/usr/sbin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/tests/clean_tbx b/nss/tests/clean_tbx
+index 4de9555..a7def9f 100755
+--- a/nss/tests/clean_tbx
++++ b/nss/tests/clean_tbx
+@@ -1,4 +1,4 @@
+-#! /bin/perl
++#!/usr/bin/env perl
+ 
+ #######################################################################
+ #
+diff --git a/nss/tests/path_uniq b/nss/tests/path_uniq
+index f29f60a..08fbffa 100755
+--- a/nss/tests/path_uniq
++++ b/nss/tests/path_uniq
+@@ -1,4 +1,4 @@
+-#! /bin/perl
++#!/usr/bin/env perl
+ 
+ ########################################################################
+ #
+-- 
+1.8.1.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
new file mode 100644
index 0000000..43c09d1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -0,0 +1,36 @@
+Fix nss multilib build on openSUSE 11.x 32bit
+
+While building lib64-nss on openSUSE 11.x 32bit, the nsinstall will
+fail with error:
+
+* nsinstall.c:1:0: sorry, unimplemented: 64-bit mode not compiled
+
+It caused by the '-m64' option which passed to host gcc.
+
+The nsinstall was built first while nss starting to build, it only runs
+on host to install built files, it doesn't need any cross-compling or
+multilib build options. Just clean the ARCHFLAG and LDFLAGS to fix this
+error.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+===================================================
+Index: nss-3.24/nss/coreconf/nsinstall/Makefile
+===================================================================
+--- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
++++ nss-3.24/nss/coreconf/nsinstall/Makefile
+@@ -18,6 +18,13 @@ INTERNAL_TOOLS  = 1
+ 
+ include $(DEPTH)/coreconf/config.mk
+ 
++# nsinstall is unfit for cross-compiling/multilib-build since it was
++# always run on local host to install built files. This change intends
++# to clean the '-m64' from ARCHFLAG and LDFLAGS.
++ARCHFLAG =
++LDFLAGS =
++# CFLAGS =
++
+ ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
+ PROGRAM		=
+ else
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
new file mode 100644
index 0000000..7661dc9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
@@ -0,0 +1,26 @@
+nss:no rpath for cross compiling
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Upstream-Status: Inappropriate [configuration]
+---
+ nss/cmd/platlibs.mk | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
+--- a/nss/cmd/platlibs.mk
++++ b/nss/cmd/platlibs.mk
+@@ -18,9 +18,9 @@ endif
+ 
+ ifeq ($(OS_ARCH), Linux)
+ ifeq ($(USE_64), 1)
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
+ else
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
+ endif
+ endif
+ 
+-- 
+1.8.1.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in
new file mode 100644
index 0000000..402b4ec
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=OEPREFIX
+exec_prefix=OEEXECPREFIX
+libdir=OELIBDIR
+includedir=OEINCDIR
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3
+Cflags: -IOEINCDIR
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
new file mode 100644
index 0000000..3a817fa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
@@ -0,0 +1,23 @@
+nss does not build on mips with clang because wrong types are used?
+
+pqg.c:339:16: error: comparison of constant 18446744073709551615 with expression of type 'unsigned long' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
+     if (addend < MP_DIGIT_MAX) {
+       ~~~~~~ ^ ~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: nss-3.37.1/nss/lib/freebl/pqg.c
+===================================================================
+--- nss-3.37.1.orig/nss/lib/freebl/pqg.c
++++ nss-3.37.1/nss/lib/freebl/pqg.c
+@@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_in
+ 
+ static SECStatus
+ addToSeed(const SECItem *seed,
+-          unsigned long addend,
+-          int seedlen, /* g in 186-1 */
++          unsigned long long  addend,
++          int                 seedlen, /* g in 186-1 */
+           SECItem *seedout)
+ {
+     mp_int s, sum, modulus, tmp;
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch
new file mode 100644
index 0000000..aef91a7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/riscv.patch
@@ -0,0 +1,36 @@
+Enable uint128 on riscv64
+
+Fixes
+| verified/kremlin/kremlib/dist/minimal/LowStar_Endianness.h:29:37: error: 'load128_be' declared 'static' but never defined [-Werror=unused-function]
+|    29 | inline static FStar_UInt128_uint128 load128_be(uint8_t *x0);
+|       |                                     ^~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h
++++ b/nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h
+@@ -56,7 +56,8 @@ typedef const char *Prims_string;
+ #include <emmintrin.h>
+ typedef __m128i FStar_UInt128_uint128;
+ #elif !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER) && \
+-    (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__))
++    (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__) || \
++     (defined(__riscv) && __riscv_xlen == 64))
+ typedef unsigned __int128 FStar_UInt128_uint128;
+ #else
+ typedef struct FStar_UInt128_uint128_s {
+--- a/nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h
++++ b/nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h
+@@ -23,9 +23,10 @@
+ #include "FStar_UInt128.h"
+ #include "FStar_UInt_8_16_32_64.h"
+ #include "LowStar_Endianness.h"
+-
++#include <stdint.h>
+ #if !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER) && \
+-    (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__))
++    (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__) || \
++     (defined(__riscv) && __riscv_xlen == 64))
+ 
+ /* GCC + using native unsigned __int128 support */
+ 
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh b/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh
new file mode 100644
index 0000000..a74e499
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/signlibs.sh
@@ -0,0 +1,20 @@
+#!/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/system-pkcs11.txt b/meta-openembedded/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
new file mode 100644
index 0000000..1a264e9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
@@ -0,0 +1,5 @@
+library=
+name=NSS Internal PKCS #11 Module
+parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' 
+NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb
new file mode 100644
index 0000000..0011240
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.51.1.bb
@@ -0,0 +1,274 @@
+SUMMARY = "Mozilla's SSL and TLS implementation"
+DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
+designed to support cross-platform development of \
+security-enabled client and server applications. \
+Applications built with NSS can support SSL v2 and v3, \
+TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
+v3 certificates, and other security standards."
+HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
+SECTION = "libs"
+
+DEPENDS = "sqlite3 nspr zlib nss-native"
+DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
+
+LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
+
+LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
+                    file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
+                    file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
+
+VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
+
+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 \
+           file://disable-Wvarargs-with-clang.patch \
+           file://pqg.c-ULL_addend.patch \
+           file://blank-cert9.db \
+           file://blank-key4.db \
+           file://system-pkcs11.txt \
+           file://nss-fix-nsinstall-build.patch \
+           file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
+           file://riscv.patch \
+           "
+
+SRC_URI[md5sum] = "6acaf1ddff69306ae30a908881c6f233"
+SRC_URI[sha256sum] = "085c5eaceef040eddea639e2e068e70f0e368f840327a678ef74ae3d6c15ca78"
+
+UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
+UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
+
+inherit siteinfo
+
+TD = "${S}/tentative-dist"
+TDS = "${S}/tentative-dist-staging"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure_prepend_libc-musl () {
+    sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
+}
+
+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() {
+    export LDFLAGS=""
+}
+
+do_compile_prepend_class-native() {
+    # Need to set RPATH so that chrpath will do its job correctly
+    RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
+}
+
+do_compile() {
+    export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
+
+    export CROSS_COMPILE=1
+    export NATIVE_CC="${BUILD_CC}"
+    # Additional defines needed on Centos 7
+    export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
+    export BUILD_OPT=1
+
+    export FREEBL_NO_DEPEND=1
+    export FREEBL_LOWHASH=1
+
+    export LIBDIR=${libdir}
+    export MOZILLA_CLIENT=1
+    export NS_USE_GCC=1
+    export NSS_USE_SYSTEM_SQLITE=1
+    export NSS_ENABLE_ECC=1
+
+    ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
+
+    export OS_RELEASE=3.4
+    export OS_TARGET=Linux
+    export OS_ARCH=Linux
+
+    if [ "${TARGET_ARCH}" = "powerpc" ]; then
+        OS_TEST=ppc
+    elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
+        OS_TEST=ppc64
+    elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+        OS_TEST=mips
+    elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+        OS_TEST="aarch64"
+    else
+        OS_TEST="${TARGET_ARCH}"
+    fi
+
+    if [ "${SITEINFO_BITS}" = "64" ]; then
+        export USE_64=1
+    elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+        export USE_X32=1
+    fi
+
+    export NSS_DISABLE_GTESTS=1
+
+    # We can modify CC in the environment, but if we set it via an
+    # argument to make, nsinstall, a host program, will also build with it!
+    #
+    # nss pretty much does its own thing with CFLAGS, so we put them into CC.
+    # Optimization will get clobbered, but most of the stuff will survive.
+    # The motivation for this is to point to the correct place for debug
+    # source files and CFLAGS does that.  Nothing uses CCC.
+    #
+    export CC="${CC} ${CFLAGS}"
+    make -C ./nss CCC="${CXX} -g" \
+        OS_TEST=${OS_TEST} \
+        RPATH="${RPATH}"
+}
+
+do_compile[vardepsexclude] += "SITEINFO_BITS"
+
+do_install_prepend_class-nativesdk() {
+    export LDFLAGS=""
+}
+
+do_install() {
+    export CROSS_COMPILE=1
+    export NATIVE_CC="${BUILD_CC}"
+    export BUILD_OPT=1
+
+    export FREEBL_NO_DEPEND=1
+
+    export LIBDIR=${libdir}
+    export MOZILLA_CLIENT=1
+    export NS_USE_GCC=1
+    export NSS_USE_SYSTEM_SQLITE=1
+    export NSS_ENABLE_ECC=1
+
+    export OS_RELEASE=3.4
+    export OS_TARGET=Linux
+    export OS_ARCH=Linux
+
+    if [ "${TARGET_ARCH}" = "powerpc" ]; then
+        OS_TEST=ppc
+    elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
+        OS_TEST=ppc64
+    elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+        OS_TEST=mips
+    elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+        CPU_ARCH=aarch64
+        OS_TEST="aarch64"
+    else
+        OS_TEST="${TARGET_ARCH}"
+    fi
+    if [ "${SITEINFO_BITS}" = "64" ]; then
+        export USE_64=1
+    elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+        export USE_X32=1
+    fi
+
+    export NSS_DISABLE_GTESTS=1
+
+    make -C ./nss \
+        CCC="${CXX}" \
+        OS_TEST=${OS_TEST} \
+        SOURCE_LIB_DIR="${TD}/${libdir}" \
+        SOURCE_BIN_DIR="${TD}/${bindir}" \
+        install
+
+    install -d ${D}/${libdir}/
+    for file in ${S}/dist/*.OBJ/lib/*.so; do
+        echo "Installing `basename $file`..."
+        cp $file  ${D}/${libdir}/
+    done
+
+    for shared_lib in ${TD}/${libdir}/*.so.*; do
+        if [ -f $shared_lib ]; then
+            cp $shared_lib ${D}/${libdir}
+            ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
+        fi
+    done
+    for shared_lib in ${TD}/${libdir}/*.so; do
+        if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
+            cp $shared_lib ${D}/${libdir}
+        fi
+    done
+
+    install -d ${D}/${includedir}/nss3
+    install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
+
+    install -d ${D}/${bindir}
+    for binary in ${TD}/${bindir}/*; do
+        install -m 755 -t ${D}/${bindir} $binary
+    done
+}
+
+do_install[vardepsexclude] += "SITEINFO_BITS"
+
+do_install_append() {
+    # Create empty .chk files for the NSS libraries at build time. They could
+    # be regenerated at target's boot time.
+    for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
+        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
+    sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
+    sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
+}
+
+do_install_append_class-target() {
+    # It used to call certutil to create a blank certificate with empty password at
+    # build time, but the checksum of key4.db changes every time when certutil is called.
+    # It causes non-determinism issue, so provide databases with a blank certificate
+    # which are originally from output of nss in qemux86-64 build. You can get these
+    # databases by:
+    # certutil -N -d sql:/database/path/ --empty-password
+    install -d ${D}${sysconfdir}/pki/nssdb/
+    install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
+    install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
+    install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
+}
+
+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
+}
+
+PACKAGES =+ "${PN}-smime"
+FILES_${PN}-smime = "\
+    ${bindir}/smime \
+"
+
+FILES_${PN} = "\
+    ${sysconfdir} \
+    ${bindir} \
+    ${libdir}/lib*.chk \
+    ${libdir}/lib*.so \
+    "
+
+FILES_${PN}-dev = "\
+    ${libdir}/nss \
+    ${libdir}/pkgconfig/* \
+    ${includedir}/* \
+    "
+
+RDEPENDS_${PN}-smime = "perl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb b/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb
index cfa86f0..50d9f52 100644
--- a/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/onig/onig_6.9.4.bb
@@ -28,5 +28,6 @@
 }
 
 do_install_ptest() {
-    install -Dm0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/*
+    mkdir -p ${D}${PTEST_PATH}/tests
+    install -m 0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/*
 }
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
deleted file mode 100644
index 35e4646..0000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-slapd depends on ICU if it was built first.
-
-Upstream-Status: inappropiate [embedded specific]
----
- configure.in |    8 --------
- 1 file changed, 8 deletions(-)
-
---- openldap-2.4.23.orig/configure.in
-+++ openldap-2.4.23/configure.in
-@@ -2045,18 +2045,10 @@ if test $ol_enable_ndb != no ; then
- 		SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
- 	fi
- fi
- 
- dnl ----------------------------------------------------------------
--dnl International Components for Unicode
--OL_ICU
--if test "$ol_icu" = no ; then
--	AC_MSG_WARN([ICU not available])
--else
--	ICU_LIBS="$ol_icu"
--fi
--dnl ----------------------------------------------------------------
- dnl
- dnl Check for Cyrus SASL
- dnl
- WITH_SASL=no
- ol_link_sasl=no
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.49.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb
rename to meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.49.bb
index ecc219d..670c704 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.48.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.49.bb
@@ -7,7 +7,7 @@
 # basically BSD.  opensource.org does not record this license
 # at present (so it is apparently not OSI certified).
 LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ad914c35f97b468f421f8ac0f3d821f4 \
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=5391b559d23a2237bdb21e7a62dae7c3 \
                     file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
                     "
 SECTION = "libs"
@@ -16,7 +16,6 @@
 
 SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \
     file://openldap-m4-pthread.patch \
-    file://kill-icu.patch \
     file://openldap-2.4.28-gnutls-gcrypt.patch \
     file://use-urandom.patch \
     file://initscript \
@@ -26,8 +25,8 @@
     file://remove-user-host-pwd-from-version.patch \
 "
 
-SRC_URI[md5sum] = "0729a0711fe096831dedc159e0bbe73f"
-SRC_URI[sha256sum] = "d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d"
+SRC_URI[md5sum] = "2a47a6bb4319357ea7b032c45283e79e"
+SRC_URI[sha256sum] = "e3b117944b4180f23befe87d0dcf47f29de775befbc469dcf4ac3dab3311e56e"
 
 DEPENDS = "util-linux groff-native"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch
new file mode 100644
index 0000000..3e7b0ad
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite/0001-pcsc-spy-use-python3-only.patch
@@ -0,0 +1,43 @@
+From 75dd98876951d86890ceb30be521de57fd31e3c7 Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 13:27:12 +0000
+Subject: [PATCH] pcsc-spy: use python3 only
+
+Python2 has been EOL and most distributions would not provide any
+support for it anymore. Since Python3 is available in all distributions
+now, switch pcsc-spy to use it exclusively.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ src/spy/pcsc-spy | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/src/spy/pcsc-spy b/src/spy/pcsc-spy
+index 85222c6..965138e 100755
+--- a/src/spy/pcsc-spy
++++ b/src/spy/pcsc-spy
+@@ -1,4 +1,4 @@
+-#! /usr/bin/python
++#!/usr/bin/env python3
+ 
+ """
+ #    Display PC/SC functions arguments
+@@ -22,12 +22,7 @@ from __future__ import print_function
+ import os
+ import signal
+ import time
+-try:
+-    # for Python3
+-    from queue import Queue
+-except ImportError:
+-    # for Python2
+-    from Queue import Queue
++from queue import Queue
+ from threading import Thread
+ from operator import attrgetter
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb
index 5e60846..91d77ac 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.26.bb
@@ -10,11 +10,14 @@
 LICENSE_${PN}-spy-dev = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6"
 
-SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
+SRC_URI = "\
+	https://pcsclite.apdu.fr/files/${BP}.tar.bz2 \
+	file://0001-pcsc-spy-use-python3-only.patch \
+"
 SRC_URI[md5sum] = "9d36882998449daceec267c68a21ff0d"
 SRC_URI[sha256sum] = "3eb7be7d6ef618c0a444316cf5c1f2f9d7227aedba7a192f389fe3e7c0dfbbd9"
 
-inherit autotools systemd pkgconfig
+inherit autotools systemd pkgconfig perlnative
 
 EXTRA_OECONF = " \
     --disable-libusb \
@@ -50,6 +53,6 @@
 RREPLACES_${PN} += "${PN}-systemd"
 RCONFLICTS_${PN} += "${PN}-systemd"
 SYSTEMD_SERVICE_${PN} = "pcscd.socket"
-RDEPENDS_${PN}-spy +="python"
+RDEPENDS_${PN}-spy +="python3"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
index f1dabcd..fcd5219 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.4.bb
@@ -16,6 +16,8 @@
    "
 SRCREV = "b95393dcc3640807838e8323b4e600e54d2e8116"
 
+UPSTREAM_CHECK_GITTAGREGEX = "poco-(?P<pver>\d+(\.\d+)+)"
+
 S = "${WORKDIR}/git"
 
 inherit cmake ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.86.1.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb
rename to meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.86.1.bb
index 5153868..a6067e6 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.84.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.86.1.bb
@@ -7,14 +7,14 @@
            file://0001-Do-not-overwrite-all-our-build-flags.patch \
            file://basename-include.patch \
            "
-SRC_URI[md5sum] = "e14a8aca8809908ad4364c32c17bcb92"
-SRC_URI[sha256sum] = "c7a130da743b38a548f7a21fe5940506fb1949f4ebdd3209f0e5b302fa139731"
+SRC_URI[md5sum] = "2a638739f29e82a0a57b633ea39c87f3"
+SRC_URI[sha256sum] = "af630a277c8e194c31339c5446241834aed6ed3d4b4dc7080311e51c66257f6c"
 
 DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
 
 inherit cmake pkgconfig gobject-introspection
 
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss splash"
 PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
 PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
 PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
@@ -22,6 +22,7 @@
 PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
 PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
 PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+PACKAGECONFIG[splash] = "-DENABLE_SPLASH=ON,-DENABLE_SPLASH=OFF,boost"
 
 # surprise - did not expect this to work :)
 inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb
index 9649555..0eef82b 100644
--- a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb
@@ -7,6 +7,9 @@
 SRC_URI[md5sum] = "ff3564fddcc2b9bd4a9c1d143aba4b4c"
 SRC_URI[sha256sum] = "608ef935f7a377e1439c181c4fc188d247da10d51a19ef79bcdee5043b0973f1"
 
+UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
+UPSTREAM_CHECK_REGEX = "pv-(?P<pver>\d+(\.\d+)+).tar.bz2"
+
 inherit autotools
 
 LDEMULATION_mipsarchn32 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'elf32btsmipn32', 'elf32ltsmipn32', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
index 14fbc94..5b66348 100644
--- a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.3.6.bb
@@ -3,10 +3,8 @@
 SECTION = "Support"
 LICENSE = "GPLv2 & openssl"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=dab7215512044d49037272ce1ac4ea8f file://LICENSE.OpenSSL;md5=c1eb3cee0a4dea27503c531267a69769"
-DEPENDS += "openssl freerdp gtk+3 gdk-pixbuf atk libgcrypt avahi-ui libsodium libssh vte json-glib libsoup-2.4 libvncserver libsecret"
+DEPENDS += "openssl freerdp gtk+3 gdk-pixbuf atk libgcrypt avahi-ui libsodium libssh vte json-glib libsoup-2.4 libvncserver libsecret libxkbfile"
 
-DEPENDS_append_x86 = " spice spice-protocol"
-DEPENDS_append_x86-64 = " spice spice-protocol"
 
 DEPENDS_append_libc-musl = " libexecinfo"
 LDFLAGS_append_libc-musl = " -lexecinfo"
@@ -18,16 +16,10 @@
 
 S = "${WORKDIR}/Remmina-v${PV}"
 
-inherit cmake features_check
+inherit cmake features_check mime-xdg
+REQUIRED_DISTRO_FEATURES = "x11"
 
-# depends on avahi-ui with this restriction
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF -DWITH_SPICE=OFF"
-
-EXTRA_OECMAKE_append_x86 = " -DWITH_SPICE=ON"
-EXTRA_OECMAKE_append_x86-64 = " -DWITH_SPICE=ON"
-
+EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF"
 
 do_install_append(){
     # We dont need the extra stuff form other desktop environments
@@ -36,6 +28,8 @@
     rm -rf ${D}/${datadir}/gnome-session
 }
 
+PACKAGECONFIG[spice] = "-DWITH_SPICE=ON, -DWITH_SPICE=OFF, spice spice-protocol"
+
 RDEPENDS_${PN} = "bash"
 
 FILES_${PN}_append = " ${datadir}/icons/hicolor/*"
diff --git a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
index aefe362..efe95b1 100644
--- a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -29,7 +29,7 @@
 
 S = "${WORKDIR}/git"
 
-inherit autotools
+inherit autotools perlnative
 
 # Fix rsnapshot.conf.default:
 # don't inject the host path into target configs.
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
deleted file mode 100644
index 4e6c250..0000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From fd244ae648789591f0fb79e74d2b8f6c5b15d6e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Aug 2019 00:47:14 +0000
-Subject: [PATCH] ppt.c: Do not include sys/io.h
-
-newer versions of glibc has removed it
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ppt.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/ppt.c b/ppt.c
-index 0bae2d0..0ef279f 100644
---- a/ppt.c
-+++ b/ppt.c
-@@ -5,7 +5,6 @@
- #else

- #include <unistd.h>

- #include <stdlib.h>

--#include <sys/io.h>

- #include <linux/parport.h>

- #include <linux/ppdev.h>

- #include <sys/ioctl.h>

--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
deleted file mode 100644
index 255754d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c24xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-PR = "r2"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
-    ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio.c
-}
-
-do_install() {
-    install -d ${D}${sbindir}
-    install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
deleted file mode 100644
index 976a4f1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c64xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
-    ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio-s3c6410.c
-}
-
-do_install() {
-    install -d ${D}${sbindir}
-    install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
deleted file mode 100644
index 3a5172e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "JTAG utility to interface w/ a S3C2410 device"
-SECTION = "devel"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
-SRCREV = "4268"
-PV = "0.1+svnr${SRCPV}"
-PR = "r1"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http \
-           file://0001-ppt.c-Do-not-include-sys-io.h.patch \
-          "
-S = "${WORKDIR}/sjf2410-linux"
-
-inherit native deploy
-
-CFLAGS += "-DLINUX_PPDEV"
-
-do_compile() {
-    oe_runmake
-}
-
-do_install() {
-    install -d ${D}/${bindir}
-    install -m 0755 sjf2410 ${D}/${bindir}
-}
-
-do_deploy() {
-    install -m 0755 sjf2410 ${DEPLOYDIR}/sjf2410-${PV}
-}
-
-addtask deploy before do_build after do_install
-
-do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
-# cleandirs should possibly be in deploy.bbclass but we need it
-do_deploy[cleandirs] = "${DEPLOYDIR}"
-# clear stamp-extra-info since MACHINE_ARCH is normally put there by
-# deploy.bbclass
-do_deploy[stamp-extra-info] = ""
-
diff --git a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
index 044c0c7..3c7a55c 100644
--- a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
@@ -7,8 +7,8 @@
 inherit autotools pkgconfig
 
 SRC_URI = "git://github.com/sass/sassc.git"
-SRCREV = "aa6d5c635ea8faf44d542a23aaf85d27e5777d48"
+SRCREV = "46748216ba0b60545e814c07846ca10c9fefc5b6"
 S = "${WORKDIR}/git"
-PV = "3.5.0"
+PV = "3.6.1"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch b/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
index 3fd85d9..f58091a 100644
--- a/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
@@ -17,13 +17,13 @@
 index 61dd9f8..42c911f 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -41,7 +41,7 @@ sglib_SOURCES =		../lib/sg_lib.c \
+@@ -53,7 +53,7 @@ sglib_SOURCES =		../lib/sg_lib.c \
  			../lib/sg_pt_common.c
  
  if HAVE_SGUTILS
 -INCLUDES = -I/scsi
 +INCLUDES = -I=@includedir@/scsi
- sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@
+ sdparm_LDADD = @GETOPT_O_FILES@ @SGUTILS_LIBS@
  sdparm_DEPENDENCIES = @GETOPT_O_FILES@
  else
 -- 
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.11.bb
similarity index 77%
rename from meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
rename to meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.11.bb
index c09b495..7fc87db 100644
--- a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.11.bb
@@ -5,7 +5,7 @@
 SECTION = "console/utils"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \
-                    file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed"
+                    file://lib/BSD_LICENSE;md5=12cde17a04c30dece2752f36b7192c64"
 DEPENDS="sg3-utils"
 SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
            file://make-sysroot-work.patch \
@@ -17,8 +17,8 @@
 PACKAGES =+ "${PN}-scripts"
 RDEPENDS_${PN}-scripts += "bash ${PN}"
 
-SRC_URI[md5sum] = "bdae64375376ce8fe4bf9521c1db858f"
-SRC_URI[sha256sum] = "1ea1ed1bb1ee2aef62392618fa42da9ed027d5e655f174525c39235778292ab3"
+SRC_URI[md5sum] = "cd998d1c12a4ec11652d0af580f06b4d"
+SRC_URI[sha256sum] = "432fdbfe90f0c51640291faf7602489b0ae56dfb96d0c02ed02308792adc7fb0"
 
 inherit autotools
 
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
similarity index 81%
rename from meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb
rename to meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
index 4909035..22995b7 100644
--- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
@@ -14,8 +14,8 @@
 
 UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz"
 
-SRC_URI[md5sum] = "c11d2b3ca4cc2fd01796473e5330afed"
-SRC_URI[sha256sum] = "8dae684d22e71b11353a48b16c95597af90f0cbe9bbd57f98d7f5544da5cae7b"
+SRC_URI[md5sum] = "2e71d7cd925dcc48acb24afaaaac7990"
+SRC_URI[sha256sum] = "0b87c971af52af7cebebcce343eac6bd3d73febb3c72af9ce41a4552f1605a61"
 
 inherit autotools-brokensep
 
diff --git a/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
deleted file mode 100644
index 702217a..0000000
--- a/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Report application memory usage in a meaningful way"
-DESCRIPTION = "smem is a tool that can give numerous reports on memory usage on Linux \
-systems. Unlike existing tools, smem can report proportional set size (PSS), \
-which is a more meaningful representation of the amount of memory used by \
-libraries and applications in a virtual memory system."
-HOMEPAGE = "http://www.selenic.com/smem/"
-SECTION = "Applications/System"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.selenic.com/${BPN}/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162"
-SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec"
-
-do_compile() {
-        ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
-}
-
-do_install() {
-        install -d ${D}/${bindir}/
-        install -d ${D}/${mandir}/man8
-        install -m 0755 ${S}/smem ${D}${bindir}/
-        install -m 0755 ${S}/smemcap ${D}${bindir}/
-        install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
-}
-RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs"
-
-PACKAGES =+ "smemcap"
-
-FILES_smemcap = "${bindir}/smemcap"
diff --git a/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb b/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb
new file mode 100644
index 0000000..96ec829
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_git.bb
@@ -0,0 +1,12 @@
+SUMMARY = "single-file header-only version of a C++20-like span for C++98, C++11 and later"
+HOMEPAGE = "https://github.com/martinmoene/span-lite"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI += "git://github.com/martinmoene/span-lite"
+SRCREV = "e03d1166ccc8481d993dc02aae703966301a5e6e"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+inherit ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb
rename to meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb
index 91e3f67..39629cc 100644
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.5.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
-SRCREV = "a7148b718ea2fabb8387cb90aee9bf448da63e65"
+SRCREV = "cf6f1dd01e660d5865d68bf5fa78f6376b89470a"
 SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
index d3488df..4c34fa1 100644
--- a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
+++ b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
@@ -11,6 +11,8 @@
 SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
 SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2"
 
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/srecord/files/releases"
+
 DEPENDS = "libtool-native boost groff-native"
 
 inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
index 965abf7..6a86276 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -1,4 +1,4 @@
-@version: 3.19
+@version: 3.24
 #
 # Syslog-ng configuration file, compatible with default Debian syslogd
 # installation. Originally written by anonymous (I can't find his name)
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
index 2b39b8c..32b9861 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
@@ -1,4 +1,4 @@
-@version: 3.19
+@version: 3.24
 #
 # Syslog-ng configuration file, compatible with default Debian syslogd
 # installation. Originally written by anonymous (I can't find his name)
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 8e53689..ff6d9d2 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
@@ -73,26 +73,26 @@
 }
 
 do_install_append() {
-    install -d ${D}/${sysconfdir}/${BPN}
-    install -d ${D}/${sysconfdir}/init.d
-    install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
+    install -d ${D}${sysconfdir}/${BPN}
+    install -d ${D}${sysconfdir}/init.d
+    install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
 
-    install -d ${D}/${sysconfdir}/default/volatiles/
-    install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng
-    install -d ${D}/${sysconfdir}/tmpfiles.d/
-    install -m 755 ${WORKDIR}/syslog-ng-tmp.conf ${D}/${sysconfdir}/tmpfiles.d/syslog-ng.conf
+    install -d ${D}${sysconfdir}/default/volatiles/
+    install -m 644 ${WORKDIR}/volatiles.03_syslog-ng ${D}${sysconfdir}/default/volatiles/03_syslog-ng
+    install -d ${D}${sysconfdir}/tmpfiles.d/
+    install -m 644 ${WORKDIR}/syslog-ng-tmp.conf ${D}${sysconfdir}/tmpfiles.d/syslog-ng.conf
 
-    install -d ${D}/${localstatedir}/lib/${BPN}
+    install -d ${D}${localstatedir}/lib/${BPN}
     # Remove /var/run as it is created on startup
     rm -rf ${D}${localstatedir}/run
 
     # support for systemd
     if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-        install ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
+        install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
 
         install -d ${D}${systemd_unitdir}/system/
-        install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
-        install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
+        install -m 644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
+        install -m 644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
 
         sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
         sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
@@ -101,7 +101,7 @@
         install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
         ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
     else
-        install ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
+        install -m 644 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
     fi
 
     oe_multilib_header syslog-ng/syslog-ng-config.h
diff --git a/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb b/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
index 26b4412..1ce3c8e 100644
--- a/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
@@ -6,7 +6,7 @@
 SRC_URI[md5sum] = "c267db0ee7a2131ba418399dc17f9e72"
 SRC_URI[sha256sum] = "218c883e4e2bfcc82bfe07e785707b5c2ece28df772f2155fd044b9bb1614284"
 
-inherit python-dir gettext
+inherit python3-dir gettext
 DEPENDS += "intltool-native gettext-native"
 
 EXTRA_OEMAKE = " \
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch
deleted file mode 100644
index 9824b61..0000000
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From aee098f1bf0511c6b5544de3170a9e8b51673b60 Mon Sep 17 00:00:00 2001
-From: Pierre Le Magourou <plemagourou@softbankrobotics.com>
-Date: Tue, 23 Jan 2018 15:25:50 +0100
-Subject: [PATCH] linux.gcc: Fix cross compilation error.
-
-When cross compiling on linux with gcc, the host gcc was used instead of
-the cross gcc to set compilation flags according to gcc version.
-
-When the cross gcc was in version 5.X and the host gcc in version 7.X,
-tbb was compiled with the -flifetime-dse=1 flag that does not exist on
-gcc 5.X.
----
- build/linux.gcc.inc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
-index 5c1889c..a4d6698 100644
---- a/build/linux.gcc.inc
-+++ b/build/linux.gcc.inc
-@@ -41,29 +41,29 @@ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
- C_FLAGS = $(CPLUS_FLAGS)
- 
- # gcc 4.2 and higher support OpenMP
--ifneq (,$(shell gcc -dumpversion | egrep  "^(4\.[2-9]|[5-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep  "^(4\.[2-9]|[5-9])"))
-     OPENMP_FLAG = -fopenmp
- endif
- 
- # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
--ifneq (,$(shell gcc -dumpversion | egrep  "^(4\.[8-9]|[5-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep  "^(4\.[8-9]|[5-9])"))
-     RTM_KEY = -mrtm
- endif
- 
- # gcc 4.0 and later have -Wextra that is used by some our customers.
--ifneq (,$(shell gcc -dumpversion | egrep  "^([4-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep  "^([4-9])"))
-     TEST_WARNING_KEY += -Wextra
- endif
- 
- # gcc 5.0 and later have -Wsuggest-override option
- # enable it via a pre-included header in order to limit to C++11 and above
--ifneq (,$(shell gcc -dumpversion | egrep  "^([5-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep  "^([5-9])"))
-     INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
- endif
- 
- # gcc 6.0 and later have -flifetime-dse option that controls
- # elimination of stores done outside the object lifetime
--ifneq (,$(shell gcc -dumpversion | egrep  "^([6-9])"))
-+ifneq (,$(shell $(CC) -dumpversion | egrep  "^([6-9])"))
-     # keep pre-contruction stores for zero initialization
-     DSE_KEY = -flifetime-dse=1
- endif
--- 
-2.15.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch
new file mode 100644
index 0000000..6f28f6f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch
@@ -0,0 +1,42 @@
+From 27956d4c5fb615098231cebfb8eef11057639d3c Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 8 Dec 2019 18:14:38 +0100
+Subject: [PATCH] src/tbbmalloc/proxy.cpp: __GLIBC_PREREQ is not defined on
+ musl
+
+Do not call __GLIBC_PREREQ if it is not defined otherwise build will
+fail on musl
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/203]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ src/tbbmalloc/proxy.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp
+index d96ae7a0..709ae839 100644
+--- a/src/tbbmalloc/proxy.cpp
++++ b/src/tbbmalloc/proxy.cpp
+@@ -24,7 +24,8 @@
+ // of aligned_alloc as required by new C++ standard, this makes it hard to
+ // redefine aligned_alloc here. However, running on systems with new libc
+ // version, it still needs it to be redefined, thus tricking system headers
+-#if defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
++#if defined(__GLIBC_PREREQ)
++#if !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
+ // tell <cstdlib> that there is no aligned_alloc
+ #undef _GLIBCXX_HAVE_ALIGNED_ALLOC
+ // trick <stdlib.h> to define another symbol instead
+@@ -32,7 +33,8 @@
+ // Fix the state and undefine the trick
+ #include <cstdlib>
+ #undef aligned_alloc
+-#endif // defined(__GLIBC_PREREQ)&&!__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
++#endif // defined(__GLIBC_PREREQ)
++#endif // !__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
+ #endif // __linux__ && !__ANDROID__
+ 
+ #include "proxy.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
index d54b307..3657854 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
@@ -1,39 +1,35 @@
 Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
+  
 Upstream-Status: unsuitable
 ---
- build/linux.gcc.inc |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
 
-Index: tbb2017_20170118oss/build/linux.gcc.inc
-===================================================================
---- tbb2017_20170118oss.orig/build/linux.gcc.inc
-+++ tbb2017_20170118oss/build/linux.gcc.inc
-@@ -32,8 +32,9 @@ DYLIB_KEY = -shared
- EXPORT_KEY = -Wl,--version-script,
- LIBDL = -ldl
+diff --git a/build/linux.clang.inc b/build/linux.clang.inc
+index fe9b5c98..b0dcd68b 100644
+--- a/build/linux.clang.inc
++++ b/build/linux.clang.inc
+@@ -12,8 +12,8 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
  
--CPLUS = g++
--CONLY = gcc
-+CPLUS = $(CXX)
-+CONLY = $(CC)
-+CPLUS_FLAGS = $(CXXFLAGS)
- LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
- LIBS += -lpthread -lrt
- LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-Index: tbb2017_20170118oss/build/linux.clang.inc
-===================================================================
---- tbb2017_20170118oss.orig/build/linux.clang.inc
-+++ tbb2017_20170118oss/build/linux.clang.inc
-@@ -31,8 +31,9 @@ DYLIB_KEY = -shared
- EXPORT_KEY = -Wl,--version-script,
- LIBDL = -ldl
+-CPLUS ?= clang++
+-CONLY ?= clang
++CPLUS ?= $(CXX)
++CONLY ?= $(CC)
+ COMPILE_ONLY = -c -MMD
+ PREPROC_ONLY = -E -x c++
+ INCLUDE_KEY = -I
+diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
+index d820c15d..62c76afd 100644
+--- a/build/linux.gcc.inc
++++ b/build/linux.gcc.inc
+@@ -12,8 +12,8 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
  
--CPLUS = clang++
--CONLY = clang
-+CPLUS = $(CXX)
-+CONLY = $(CC)
-+CPLUS_FLAGS = $(CXXFLAGS)
- LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
- LIBS += -lpthread -lrt
- LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+-CPLUS ?= g++
+-CONLY ?= gcc
++CPLUS ?= $(CXX)
++CONLY ?= $(CC)
+ COMPILE_ONLY = -c -MMD
+ PREPROC_ONLY = -E -x c++
+ INCLUDE_KEY = -I
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
index 644b64f..4f9da11 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
@@ -5,7 +5,7 @@
 
 Name: Threading Building Blocks
 Description: Intel's parallelism library for C++
-URL: http://www.threadingbuildingblocks.org/
-Version: 3.0+r018
+URL: https://software.intel.com/en-us/tbb
+Version: 2020.2
 Libs: -L${libdir} -ltbb
 Cflags: -I${includedir} 
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2020.2.bb
similarity index 73%
rename from meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
rename to meta-openembedded/meta-oe/recipes-support/tbb/tbb_2020.2.bb
index f870104..2f9fd7f 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2020.2.bb
@@ -3,35 +3,37 @@
     performance without having to be a threading expert. It represents a \
     higher-level, task-based parallelism that abstracts platform details \
     and threading mechanism for performance and scalability."
-HOMEPAGE = "http://threadingbuildingblocks.org/"
+HOMEPAGE = "https://software.intel.com/en-us/tbb"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-PRDATE = "20170412"
-BRANCH = "tbb_2017"
-SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3"
-PV = "${PRDATE}+${SRCPV}"
-SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
+BRANCH = "tbb_2020"
+SRCREV = "60b7d0a78f8910976678ba63a19fdaee22c0ef65"
+SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
            file://cross-compile.patch \
            file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
-           file://0002-linux-Fix-gcc-version-check.patch \
+           file://GLIBC-PREREQ-is-not-defined-on-musl.patch \
            file://tbb.pc \
 "
 
 S = "${WORKDIR}/git"
+PE = "1"
 
 COMPILER ?= "gcc"
 COMPILER_toolchain-clang = "clang"
 
 do_compile() {
-    oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4
+    oe_runmake compiler=${COMPILER} arch=${HOST_ARCH}
 }
 
 do_install() {
-    install -d ${D}${includedir} ${D}${libdir}/pkgconfig
+    install -d ${D}${includedir} ${D}${libdir}
     rm ${S}/include/tbb/index.html -f
     cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir}
-    install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir}
-    install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig
+    for f in ${B}/build/linux_*_release/lib*.so*
+    do
+        install -Dm 0755 $f ${D}${libdir}/
+    done
+    install -Dm 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig/tbb.pc
 }
 
 # fails with thumb enabled:
@@ -41,5 +43,3 @@
 # ...
 # | make[1]: *** [concurrent_queue.o] Error 1
 ARM_INSTRUCTION_SET = "arm"
-SECURITY_CFLAGS_append = " -fPIC"
-
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
index c1136cd..0366ad8 100644
--- a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb
@@ -13,6 +13,8 @@
 SRC_URI[md5sum] = "01c7bd5d0d4f3a9f6f5befe6f57a470b"
 SRC_URI[sha256sum] = "34599bbcc4e5ab87832370763e38be5100984a64237555e9234a1ea225a0fadc"
 
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
 DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool libedit"
 DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
index 8c28c9d..da52bb5 100644
--- a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.9.3.bb
@@ -8,6 +8,8 @@
 SRC_URI[md5sum] = "9874b64f6f4ff656f3f69598e38f12b7"
 SRC_URI[sha256sum] = "6cef39d6eaf1a48504ee0264ce85f078758057dafb1edd0a898183b55ff76014"
 
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
 inherit cmake
 
 EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
similarity index 75%
rename from meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb
rename to meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
index 6abd941..938c0f9 100644
--- a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb
+++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
@@ -7,8 +7,8 @@
 DEPENDS += "tcl-native"
 
 SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "fb50d15b52e909d742dd16f0a9882316"
-SRC_URI[sha256sum] = "ce413ef2a50e648e9c81bc3ea6110e7324a8bf981034fc9ec4467d3562563c2c"
+SRC_URI[md5sum] = "e8fce7eb949cbe16c61fb71bade4cc17"
+SRC_URI[sha256sum] = "3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9"
 
 do_install() {
     oe_runmake install DESTDIR=${D}
diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
similarity index 78%
rename from meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb
rename to meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
index 33e40b3..baad340 100644
--- a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
@@ -1,12 +1,12 @@
 SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
 LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=091556bd6d0154cd4c2d17a1bfc7380a"
 
 DEPENDS = "libusb1"
 
 SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "16b9a8efa1bf8fbd7d5612757eae4f26"
-SRC_URI[sha256sum] = "abffac09c87eacd78e101545967dc25af7e989745b4276756d45dbf4008a2ea6"
+SRC_URI[md5sum] = "be73dcc84025794081a1d4d4e5a75e4c"
+SRC_URI[sha256sum] = "c215236e6bada6e659fc195a31d611ea298a4bdb4d57a0d68c553b56585f8ba3"
 
 inherit pkgconfig systemd
 
diff --git a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
deleted file mode 100644
index 271e6a5..0000000
--- a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: usbpath/configure.ac
-===================================================================
---- usbpath.orig/configure.ac	2014-07-17 20:40:26.000000000 +0000
-+++ usbpath/configure.ac	2014-07-18 07:01:40.933474420 +0000
-@@ -1,5 +1,5 @@
- AC_INIT([usbpath],[0.1])
--AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
-+AM_INIT_AUTOMAKE([foreign])
- 
- AC_PROG_CC
- AC_PROG_RANLIB
diff --git a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
deleted file mode 100644
index 6c9cd04..0000000
--- a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Convert the physical locations of a USB device to/from its number"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f"
-DEPENDS = "virtual/libusb0"
-DEPENDS_class-native = "virtual/libusb0-native"
-
-BBCLASSEXTEND = "native"
-
-SRCREV = "3172"
-PV = "0.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \
-           file://configure.patch"
-
-S = "${WORKDIR}/usbpath"
-
-inherit autotools pkgconfig
-
-RDEPENDS_${PN} += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
index 71bf572..7cfd470 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -12,8 +12,8 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/evemu-impl.h |  5 +++++
- src/evemu.c      | 16 +++++++++-------
- 2 files changed, 14 insertions(+), 7 deletions(-)
+ src/evemu.c      | 20 ++++++++++++--------
+ 2 files changed, 17 insertions(+), 8 deletions(-)
 
 diff --git a/src/evemu-impl.h b/src/evemu-impl.h
 index acf2976..c08d861 100644
@@ -32,7 +32,7 @@
  #define EVPLAY_NBYTES	((EVPLAY_NBITS + 7) / 8)
  
 diff --git a/src/evemu.c b/src/evemu.c
-index 21187af..160c915 100644
+index 21187af..7489449 100644
 --- a/src/evemu.c
 +++ b/src/evemu.c
 @@ -363,7 +363,7 @@ int evemu_read(struct evemu_device *dev, FILE *fp)
@@ -55,16 +55,19 @@
  	ev->type = type;
  	ev->code = code;
  	ev->value = value;
-@@ -411,12 +411,14 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev,
+@@ -410,13 +411,16 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev,
+ 		return ret;
  
  	if (evtime) {
- 		if (!evtime->tv_sec)
+-		if (!evtime->tv_sec)
 -			*evtime = ev->time;
 -		usec = 1000000L * (ev->time.tv_sec - evtime->tv_sec);
 -		usec += ev->time.tv_usec - evtime->tv_usec;
++		if (!evtime->tv_sec) {
 +			evtime->tv_sec = ev->input_event_sec;
 +			evtime->tv_usec = ev->input_event_usec;
-+		usec = 1000000L * (ev->input_event_sec - evtime->tv_sec);
++		}
++		usec = (ev->input_event_sec - evtime->tv_sec) * 1000000L;
 +		usec += ev->input_event_usec - evtime->tv_usec;
  		if (usec > 500) {
  			usleep(usec);
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
index 41d1cbf..7c5a734 100644
--- a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -12,7 +12,7 @@
            "
 SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
 
-PV = "1.0.5+git${SRCPV}"
+PV = "1.0.6+git${SRCPV}"
 
 S = "${WORKDIR}/git/"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.6.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb
rename to meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.6.bb
index 62c2b50..89b1ee1 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.6.bb
@@ -14,8 +14,8 @@
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
     file://Makefile.utils \
 "
-SRC_URI[md5sum] = "f4f42fd09857556b04b803fb99cc6905"
-SRC_URI[sha256sum] = "4326576e8428ea3626194fc82646347576e94c61f11d412a669fc8a10c2a1e67"
+SRC_URI[md5sum] = "fe6328d22dfb20ea372daa4b58b12374"
+SRC_URI[sha256sum] = "b031c30d770f28c5f884071ad933e8c1f83e65b93aaba03a4012077c1d90a54f"
 
 S = "${WORKDIR}/vbox_module"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch
deleted file mode 100644
index 0c8285d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Replace-make_shared-with-new-in-some-cases.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 080fc37949114184d4832f7acffe2613745833f3 Mon Sep 17 00:00:00 2001
-From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
-Date: Tue, 16 Apr 2019 08:38:01 +0200
-Subject: [PATCH 1/2] Replace make_shared with new in some cases
-
-Replace make_shared for asio types that take a lib::ref as a parameter.
-This should fix the ASIO change (boostorg/asio@59066d8) for 1.70,
-while keeping it backwards compatible to older boost versions.
----
- websocketpp/transport/asio/connection.hpp    | 7 ++++---
- websocketpp/transport/asio/endpoint.hpp      | 3 +--
- websocketpp/transport/asio/security/none.hpp | 3 +--
- websocketpp/transport/asio/security/tls.hpp  | 3 +--
- 4 files changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
-index 60f88a7..1ccda8f 100644
---- a/websocketpp/transport/asio/connection.hpp
-+++ b/websocketpp/transport/asio/connection.hpp
-@@ -311,9 +311,10 @@ public:
-      * needed.
-      */
-     timer_ptr set_timer(long duration, timer_handler callback) {
--        timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
--            lib::ref(*m_io_service),
--            lib::asio::milliseconds(duration)
-+        timer_ptr new_timer(
-+            new lib::asio::steady_timer(
-+                *m_io_service,
-+                lib::asio::milliseconds(duration))
-         );
- 
-         if (config::enable_multithreading) {
-diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
-index ddab2c7..4b719a9 100644
---- a/websocketpp/transport/asio/endpoint.hpp
-+++ b/websocketpp/transport/asio/endpoint.hpp
-@@ -195,8 +195,7 @@ public:
- 
-         m_io_service = ptr;
-         m_external_io_service = true;
--        m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
--            lib::ref(*m_io_service));
-+        m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
- 
-         m_state = READY;
-         ec = lib::error_code();
-diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp
-index 5c8293d..6c7d352 100644
---- a/websocketpp/transport/asio/security/none.hpp
-+++ b/websocketpp/transport/asio/security/none.hpp
-@@ -168,8 +168,7 @@ protected:
-             return socket::make_error_code(socket::error::invalid_state);
-         }
- 
--        m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
--            lib::ref(*service));
-+        m_socket.reset(new lib::asio::ip::tcp::socket(*service));
- 
-         if (m_socket_init_handler) {
-             m_socket_init_handler(m_hdl, *m_socket);
-diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
-index c76fd9a..04ac379 100644
---- a/websocketpp/transport/asio/security/tls.hpp
-+++ b/websocketpp/transport/asio/security/tls.hpp
-@@ -193,8 +193,7 @@ protected:
-         if (!m_context) {
-             return socket::make_error_code(socket::error::invalid_tls_context);
-         }
--        m_socket = lib::make_shared<socket_type>(
--            _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
-+        m_socket.reset(new socket_type(*service, *m_context));
- 
-         if (m_socket_init_handler) {
-             m_socket_init_handler(m_hdl, get_socket());
--- 
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch
deleted file mode 100644
index 962d089..0000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0002-Fix-missed-entries-fix-testing.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 12ab603ca962e83591985a585451d33544d75d56 Mon Sep 17 00:00:00 2001
-From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
-Date: Wed, 17 Apr 2019 10:06:18 +0000
-Subject: [PATCH 2/2] Fix missed entries; fix testing
-
----
- CMakeLists.txt                            | 2 +-
- websocketpp/transport/asio/connection.hpp | 3 +--
- websocketpp/transport/asio/endpoint.hpp   | 7 ++-----
- 3 files changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2786aba..951de97 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
- 	endif ()
- 
-     if (NOT Boost_USE_STATIC_LIBS)
--        add_definitions (/DBOOST_TEST_DYN_LINK)
-+        add_definitions (-DBOOST_TEST_DYN_LINK)
-     endif ()
- 
-     set (Boost_FIND_REQUIRED TRUE)
-diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
-index 1ccda8f..57dda74 100644
---- a/websocketpp/transport/asio/connection.hpp
-+++ b/websocketpp/transport/asio/connection.hpp
-@@ -462,8 +462,7 @@ protected:
-         m_io_service = io_service;
- 
-         if (config::enable_multithreading) {
--            m_strand = lib::make_shared<lib::asio::io_service::strand>(
--                lib::ref(*io_service));
-+            m_strand.reset(new lib::asio::io_service::strand(*io_service));
-         }
- 
-         lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
-diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
-index 4b719a9..94509ad 100644
---- a/websocketpp/transport/asio/endpoint.hpp
-+++ b/websocketpp/transport/asio/endpoint.hpp
-@@ -687,9 +687,7 @@ public:
-      * @since 0.3.0
-      */
-     void start_perpetual() {
--        m_work = lib::make_shared<lib::asio::io_service::work>(
--            lib::ref(*m_io_service)
--        );
-+        m_work.reset(new lib::asio::io_service::work(*m_io_service));
-     }
- 
-     /// Clears the endpoint's perpetual flag, allowing it to exit when empty
-@@ -853,8 +851,7 @@ protected:
- 
-         // Create a resolver
-         if (!m_resolver) {
--            m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
--                lib::ref(*m_io_service));
-+            m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
-         }
- 
-         tcon->set_uri(u);
--- 
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch
deleted file mode 100644
index bc65efb..0000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/771.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 4bccfb04a264704ec9b80ba332ee1cf113ce7f1b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= <c72578@yahoo.de>
-Date: Thu, 1 Nov 2018 20:58:10 +0100
-Subject: [PATCH] Update version number in CMakeLists.txt to 0.8.1
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2786aba9..2d13117b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -24,7 +24,7 @@ endif ()
- ############ Project name and version
- set (WEBSOCKETPP_MAJOR_VERSION 0)
- set (WEBSOCKETPP_MINOR_VERSION 8)
--set (WEBSOCKETPP_PATCH_VERSION 0)
-+set (WEBSOCKETPP_PATCH_VERSION 1)
- set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSION}.${WEBSOCKETPP_PATCH_VERSION})
- 
- if(POLICY CMP0048)
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch
deleted file mode 100644
index c3651e9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/842.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 7f7e2be01b4fa6580ce27f668e61adf37853ad67 Mon Sep 17 00:00:00 2001
-From: Schrijvers Luc <begasus@gmail.com>
-Date: Wed, 18 Sep 2019 11:35:43 +0200
-Subject: [PATCH] Fix "include" directory installation. the variable
- INSTALL_INCLUDE_DIR already exists, and defaults to include if not
- specificied otherwise. Using it allows people to customize the installation
- from outside, fixing issues with other OS like Haiku
-
-Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
-Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
----
- cmake/CMakeHelpers.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/CMakeHelpers.cmake b/cmake/CMakeHelpers.cmake
-index 1478f4b..f603632 100644
---- a/cmake/CMakeHelpers.cmake
-+++ b/cmake/CMakeHelpers.cmake
-@@ -80,7 +80,7 @@ macro (final_target)
-     endif ()
- 
-     install (DIRECTORY ${CMAKE_SOURCE_DIR}/${TARGET_NAME}
--             DESTINATION include/
-+             DESTINATION ${INSTALL_INCLUDE_DIR}/
-              FILES_MATCHING PATTERN "*.hpp*")
- endmacro ()
- 
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
index f1d037f..7a99daf 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Correct-clang-compiler-flags.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
@@ -18,7 +18,7 @@
 index 2d13117..c17354a 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -150,7 +150,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+@@ -154,7 +154,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
          endif()
          set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto)
          set (WEBSOCKETPP_BOOST_LIBS system thread)
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-cmake-Use-GNUInstallDirs.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
index a1ee627..3245d94 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/855.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
@@ -12,7 +12,7 @@
 index 2d13117b..9a46bc10 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -213,7 +213,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+@@ -217,7 +217,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
      set (Boost_USE_MULTITHREADED TRUE)
      set (Boost_ADDITIONAL_VERSIONS "1.39.0" "1.40.0" "1.41.0" "1.42.0" "1.43.0" "1.44.0" "1.46.1") # todo: someone who knows better spesify these!
  
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/857.patch
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
similarity index 81%
rename from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
rename to meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
index af6d30a..79a5ac5 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
@@ -7,11 +7,7 @@
 DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'openssl boost zlib', '', d)} "
 
 SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https \
-           file://0001-Replace-make_shared-with-new-in-some-cases.patch \
-           file://0002-Fix-missed-entries-fix-testing.patch \
            file://0001-cmake-Use-GNUInstallDirs.patch \
-           file://842.patch \
-           file://771.patch \
            file://855.patch \
            file://857.patch \
            file://0001-Correct-clang-compiler-flags.patch \
@@ -25,8 +21,8 @@
 # to add this package to an SDK, since it isn't a reverse-dependency of anything, just use something like this:
 # TOOLCHAIN_TARGET_TASK_append = " websocketpp-dev"
 
-# tag 0.8.1
-SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7"
+# tag 0.8.2
+SRCREV= "56123c87598f8b1dd471be83ca841ceae07f95ba"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
deleted file mode 100644
index 90eff5b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0378cbb323c662a565f7f3de2dee3d8a646e7bd1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:32:42 -0700
-Subject: [PATCH 1/2] makefile: Pass CFLAGS to compile
-
-Set CC if not already set
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/host/tools/wmiconfig/Makefile b/host/tools/wmiconfig/Makefile
-index c6738c5..3253a7e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,4 +1,4 @@
--CC :=$(ATH_CROSS_COMPILE_TYPE)gcc
-+CC ?= $(ATH_CROSS_COMPILE_TYPE)gcc
- 
- all:
--	$(CC) -Wall -DUSER_KEYS -g $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
-+	$(CC) -Wall -DUSER_KEYS -g $(CFLAGS) $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
--- 
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
deleted file mode 100644
index f67f784..0000000
--- a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-From 909ebdde4ee2233d65de8fa01fde8e9a3bec12b7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:33:26 -0700
-Subject: [PATCH 2/2] fix err() API to have format string
-
-Fixes errors with hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/wmiconfig.c | 148 +++++++++++++++++++--------------------
- 1 file changed, 74 insertions(+), 74 deletions(-)
-
-diff --git a/host/tools/wmiconfig/wmiconfig.c b/host/tools/wmiconfig/wmiconfig.c
-index 21c9dcd..a6ec481 100644
---- a/wmiconfig.c
-+++ b/wmiconfig.c
-@@ -483,7 +483,7 @@ main (int argc, char **argv)
-     strcpy(ifname, ethIf);
-     s = socket(AF_INET, SOCK_DGRAM, 0);
-     if (s < 0) {
--        err(1, "socket");
-+        err(1, "%s", "socket");
-     }
- 
-     while (1) {
-@@ -1506,28 +1506,28 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)filterCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SETBSSFILTER, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_POWER_MODE:
-         ifr.ifr_data = (void *)pwrCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SETPWR, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_PM_PARAMS:
-         ifr.ifr_data = (void *)pmParamCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_PMPARAMS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_IBSS_PM_CAPS:
-         ifr.ifr_data = (void *)adhocPmCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_ERROR_DETECTION:
-@@ -1535,7 +1535,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_HB_CHALLENGE_RESP:
-@@ -1543,7 +1543,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
- #ifdef USER_KEYS
-@@ -1554,7 +1554,7 @@ main (int argc, char **argv)
- 
-             if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-             {
--                err(1, ifr.ifr_name);
-+                err(1, "%s", ifr.ifr_name);
-             }
- 
-             break;
-@@ -1575,7 +1575,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)sParamCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SETSCAN, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_VERSION:
-@@ -1586,7 +1586,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)revinfo;
-         if (ioctl(s, AR6000_IOCTL_WMI_GETREV, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         printf("Host Rev = 0x%x(%u.%u.%u.%u), Target Rev = 0x%x(%u.%u.%u.%u)\n",
-               revinfo->host_ver,
-@@ -1606,14 +1606,14 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)listenCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SETLISTENINT, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_BMISS_TIME:
-         ifr.ifr_data = (void *)bmissCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_BMISS_TIME, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_RSSI_THRESHOLDS:
-@@ -1621,14 +1621,14 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_SNR_THRESHOLDS:
-         ifr.ifr_data = (void *)snrThresholdParam;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_SNRTHRESHOLD, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_CLR_RSSISNR:
-@@ -1636,7 +1636,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_LQ_THRESHOLDS:
-@@ -1644,7 +1644,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_CHANNEL:
-@@ -1693,18 +1693,18 @@ main (int argc, char **argv)
-  
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_CHANNELPARAMS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_SSID:
-         if (index > MAX_PROBED_SSID_INDEX) {
-             printf("num option for ssid command too large\n");
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-             break;
-         }
-         if (strlen((char *)ssid) > sizeof (ssidCmd->ssid)) {
-             printf("ssid name too large\n");
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-             break;
-         }
-         ssidCmd->entryIndex = index;
-@@ -1722,7 +1722,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)ssidCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_PROBEDSSID, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_BADAP:
-@@ -1735,7 +1735,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)badApCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_BADAP, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_CREATE_QOS:
-@@ -1794,7 +1794,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)crePStreamCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_CREATE_QOS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_TARGET_STATS:
-@@ -1807,7 +1807,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)&tgtStatsCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_GET_TARGET_STATS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         printTargetStats(&(tgtStatsCmd.targetStats));
-         break;
-@@ -1815,7 +1815,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)pBitMask;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_DELETE_QOS:
-@@ -1824,7 +1824,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)delPStreamCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_DELETE_QOS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_QOS_QUEUE:
-@@ -1840,7 +1840,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)getQosQueueCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_GET_QOS_QUEUE, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
- 
-         printf("Active TSIDs \n");
-@@ -1855,7 +1855,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)ieInfo;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_ASSOC_INFO, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_AC_PARAMS:
-@@ -1871,14 +1871,14 @@ main (int argc, char **argv)
-         ifr.ifr_data = (void *)acParamsCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_ACCESS_PARAMS, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_DISC_TIMEOUT:
-         ifr.ifr_data = (void *)discCmd;
-         if (ioctl(s, AR6000_IOCTL_WMI_SET_DISC_TIMEOUT, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-      case WMI_SET_ADHOC_BSSID:
-@@ -1887,7 +1887,7 @@ main (int argc, char **argv)
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
-             printf("fail to set adhoc bssid \n");
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_OPT_MODE:
-@@ -1895,7 +1895,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_OPT_SEND_FRAME:
-@@ -1903,7 +1903,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_BEACON_INT:
-@@ -1911,7 +1911,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_VOICE_PKT_SIZE:
-@@ -1919,7 +1919,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_MAX_SP:
-@@ -1927,7 +1927,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_ROAM_TBL:
-@@ -1935,7 +1935,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_ROAM_CTRL:
-@@ -1943,7 +1943,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_POWERSAVE_TIMERS:
-@@ -1951,7 +1951,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_POWER_MODE:
-@@ -1959,7 +1959,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         printf("Power mode is %s\n",
-                (getPowerMode->powerMode == MAX_PERF_POWER) ? "maxperf" : "rec");
-@@ -1969,7 +1969,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_ROAM_DATA:
-@@ -1977,7 +1977,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_BT_STATUS:
-@@ -1985,7 +1985,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_BT_PARAMS:
-@@ -1993,7 +1993,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;   
-     case WMI_SET_RETRYLIMITS:
-@@ -2001,14 +2001,14 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_START_SCAN:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_STARTSCAN;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_FIX_RATES:
-@@ -2031,14 +2031,14 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_FIX_RATES:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_GETFIXRATES;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         } else {
-             int i;
-             printf("Fix rate set index:");
-@@ -2057,7 +2057,7 @@ main (int argc, char **argv)
-         index--;
-         setAuthMode->mode = atoi(argv[index]);
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_REASSOC_MODE:
-@@ -2067,42 +2067,42 @@ main (int argc, char **argv)
-         index--;
-         setReassocMode->mode = atoi(argv[index]);
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_LPREAMBLE:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_LPREAMBLE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_RTS:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_RTS;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_WMM:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WMM;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_TXOP:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_TXOP;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case DIAG_READ:
-         ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         printf("diagdata: 0x%x\n", *diagdata);
-         break;
-@@ -2110,7 +2110,7 @@ main (int argc, char **argv)
-         ((int *)buf)[0] = AR6000_XIOCTL_DIAG_WRITE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_RD:
-@@ -2118,7 +2118,7 @@ main (int argc, char **argv)
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
-         {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         else
-         {
-@@ -2139,14 +2139,14 @@ main (int argc, char **argv)
-         index--;
-         setKeepAlive->keepaliveInterval = atoi(argv[index]);
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_KEEPALIVE:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_KEEPALIVE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         printf("Keepalive interval is %d secs and AP is %s\n",
-                getKeepAlive->keepaliveInterval, (getKeepAlive->configured ?
-@@ -2156,63 +2156,63 @@ main (int argc, char **argv)
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_APPIE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_MGMT_FRM_RX_FILTER:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_DBGLOG_CFG_MODULE:
-         ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_CFG_MODULE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_DBGLOG_GET_DEBUG_LOGS:
-         ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_HOST_SLEEP_MODE:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_WOW_MODE:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WOW_MODE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_ADD_WOW_PATTERN:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_ADD_WOW_PATTERN;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_DEL_WOW_PATTERN:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_DEL_WOW_PATTERN;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_GET_WOW_LIST:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_WOW_LIST;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case DIAG_DUMP_CHIP_MEM:
-@@ -2225,7 +2225,7 @@ main (int argc, char **argv)
-                 ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
-                 ifr.ifr_data = buf;
-                 if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--                    err(1, ifr.ifr_name);
-+                    err(1, "%s", ifr.ifr_name);
-                 }
-                 printf("0x%04x:0x%04x\n", *diagaddr, *diagdata);
-             }
-@@ -2237,21 +2237,21 @@ main (int argc, char **argv)
-         index = optind - 1;
-         *connectCtrlFlags = strtoul(argv[index], NULL, 0);
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case DUMP_HTC_CREDITS:        
-         ((int *)buf)[0] = AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_AKMP_INFO:
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_AKMP_PARAMS;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_PMKID_LIST:
-@@ -2259,7 +2259,7 @@ main (int argc, char **argv)
-             ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_PMKID_LIST;
-             ifr.ifr_data = buf;
-             if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--                err(1, ifr.ifr_name);
-+                err(1, "%s", ifr.ifr_name);
-             }
-         } else {
-             printf("No PMKIDs entered\n");
-@@ -2269,7 +2269,7 @@ main (int argc, char **argv)
-         ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_PMKID_LIST;
-         ifr.ifr_data = buf;
-         if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     case WMI_SET_BSS_PMKID_INFO:
-@@ -2277,7 +2277,7 @@ main (int argc, char **argv)
-         iwr.u.data.length = sizeof(*pi_cmd);
-         if (ioctl(s, IEEE80211_IOCTL_ADDPMKID, &iwr) < 0) {
-             printf("ADDPMKID IOCTL Error\n");
--            err(1, ifr.ifr_name);
-+            err(1, "%s", ifr.ifr_name);
-         }
-         break;
-     default:
--- 
-2.13.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
deleted file mode 100644
index c66572b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Atheros 6K Wifi configuration utility"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
-SECTION = "console/network"
-SRCREV = "5394"
-PV = "0.0.0+svnr${SRCPV}"
-PR = "r2"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \
-           file://0001-makefile-Pass-CFLAGS-to-compile.patch \
-           file://0002-fix-err-API-to-have-format-string.patch \
-           "
-S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
-
-CLEANBROKEN = "1"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
-    install -d ${D}${bindir}
-    install -m 0755 wmiconfig ${D}${bindir}
-}
-
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
new file mode 100644
index 0000000..53c1197
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
@@ -0,0 +1,52 @@
+From 9ed3b4e628f9254d5c86006fe63c33a1eb02aee5 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 4 Feb 2020 23:39:49 -0800
+Subject: [PATCH] nss/nspr: fix for multilib
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ configure.ac | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b46d97d..39f4318 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -920,24 +920,24 @@ fi
+ dnl Priority 1: User specifies the path to installation
+ if test "z$NSPR_FOUND" = "zno" -a "z$with_nspr" != "z" -a "z$with_nspr" != "zyes" ; then
+     AC_MSG_CHECKING(for nspr library installation in "$with_nspr" folder)
+-    if test -f "$with_nspr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/lib/$NSPR_LIB_MARKER" ; then
+-        NSPR_INCLUDE_PATH="$with_nspr/include"
+-        NSPR_LIB_PATH="$with_nspr/lib"
++    if test -f "$with_nspr/${includedir}/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/${libdir}/$NSPR_LIB_MARKER" ; then
++        NSPR_INCLUDE_PATH="$with_nspr/${includedir}"
++        NSPR_LIB_PATH="$with_nspr/${libdir}"
+         NSPR_FOUND="yes"
+         AC_MSG_RESULT([yes])
+     else
+-        AC_MSG_ERROR([not found: "$with_nspr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/lib/$NSPR_LIB_MARKER" files don't exist), typo?])
++        AC_MSG_ERROR([not found: "$with_nspr/${includedir}/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/${libdir}/$NSPR_LIB_MARKER" files don't exist), typo?])
+     fi
+ fi
+ if test "z$NSS_FOUND" = "zno" -a "z$with_nss" != "z" -a "z$with_nss" != "zyes" ; then
+     AC_MSG_CHECKING(for nss library installation in "$with_nss" folder)
+-    if test -f "$with_nss/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/lib/$NSS_LIB_MARKER" ; then
+-        NSS_INCLUDE_PATH="$with_nss/include"
+-        NSS_LIB_PATH="$with_nss/lib"
++    if test -f "$with_nss/${includedir}/$NSS_INCLUDE_MARKER" -a -f "$with_nss/${libdir}/$NSS_LIB_MARKER" ; then
++        NSS_INCLUDE_PATH="$with_nss/${includedir}"
++        NSS_LIB_PATH="$with_nss/${libdir}"
+         NSS_FOUND="yes"
+         AC_MSG_RESULT([yes])
+     else
+-        AC_MSG_ERROR([not found: "$with_nss/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/lib/$NSS_LIB_MARKER" files don't exist), typo?])
++        AC_MSG_ERROR([not found: "$with_nss/${includedir}/$NSS_INCLUDE_MARKER" and/or "$with_nss/${libdir}/$NSS_LIB_MARKER" files don't exist), typo?])
+     fi
+ fi
+ 
+-- 
+2.21.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
index 1cec47f..1451ff5 100644
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
@@ -16,12 +16,8 @@
 index 951b3eb..1fdeb0f 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -866,10 +866,10 @@ MOZILLA_MIN_VERSION="1.4"
- NSS_CRYPTO_LIB="$XMLSEC_PACKAGE-nss"
- NSPR_PACKAGE=mozilla-nspr
- NSS_PACKAGE=mozilla-nss
--NSPR_INCLUDE_MARKER="nspr/nspr.h"
-+NSPR_INCLUDE_MARKER="nspr.h"
+@@ -866,7 +866,7 @@ MOZILLA_MIN_VERSION="1.4"
+ NSPR_INCLUDE_MARKER="nspr/nspr.h"
  NSPR_LIB_MARKER="libnspr4$shrext"
  NSPR_LIBS_LIST="-lnspr4 -lplds4 -lplc4"
 -NSS_INCLUDE_MARKER="nss/nss.h"
@@ -29,39 +25,3 @@
  NSS_LIB_MARKER="libnss3$shrext"
  NSS_LIBS_LIST="-lnss3 -lsmime3"
  
-@@ -898,24 +898,24 @@ fi
- dnl Priority 1: User specifies the path to installation
- if test "z$NSPR_FOUND" = "zno" -a "z$with_nspr" != "z" -a "z$with_nspr" != "zyes" ; then
-     AC_MSG_CHECKING(for nspr library installation in "$with_nspr" folder)
--    if test -f "$with_nspr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/lib/$NSPR_LIB_MARKER" ; then
--        NSPR_INCLUDE_PATH="$with_nspr/include"
--        NSPR_LIB_PATH="$with_nspr/lib"
-+    if test -f "$with_nspr/usr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/${libdir}/$NSPR_LIB_MARKER" ; then
-+        NSPR_INCLUDE_PATH="$with_nspr/usr/include"
-+        NSPR_LIB_PATH="$with_nspr/${libdir}"
-         NSPR_FOUND="yes"
-         AC_MSG_RESULT([yes])
-     else
--        AC_MSG_ERROR([not found: "$with_nspr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/lib/$NSPR_LIB_MARKER" files don't exist), typo?])
-+        AC_MSG_ERROR([not found: "$with_nspr/usr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/${libdir}/$NSPR_LIB_MARKER" files don't exist), typo?])
-     fi
- fi
- if test "z$NSS_FOUND" = "zno" -a "z$with_nss" != "z" -a "z$with_nss" != "zyes" ; then
-     AC_MSG_CHECKING(for nss library installation in "$with_nss" folder)
--    if test -f "$with_nss/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/lib/$NSS_LIB_MARKER" ; then
--        NSS_INCLUDE_PATH="$with_nss/include"
--        NSS_LIB_PATH="$with_nss/lib"
-+    if test -f "$with_nss/usr/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/${libdir}/$NSS_LIB_MARKER" ; then
-+        NSS_INCLUDE_PATH="$with_nss/usr/include/nss3"
-+        NSS_LIB_PATH="$with_nss/${libdir}"
-         NSS_FOUND="yes"
-         AC_MSG_RESULT([yes])
-     else
--        AC_MSG_ERROR([not found: "$with_nss/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/lib/$NSS_LIB_MARKER" files don't exist), typo?])
-+        AC_MSG_ERROR([not found: "$with_nss/usr/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/${libdir}/$NSS_LIB_MARKER" files don't exist), typo?])
-     fi
- fi
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
similarity index 82%
rename from meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb
rename to meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
index 40c585e..20c7b2d 100644
--- a/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.29.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.30.bb
@@ -17,21 +17,22 @@
     file://change-finding-path-of-nss.patch \
     file://makefile-ptest.patch \
     file://xmlsec1-examples-allow-build-in-separate-dir.patch \
+    file://0001-nss-nspr-fix-for-multilib.patch \
     file://run-ptest \
     "
 
-SRC_URI[md5sum] = "4755621ff2a7150e208de6bd7decca10"
-SRC_URI[sha256sum] = "b1d1deba966019930f608d1f2b95c40ca3450f1393bcd3a3c001a8ba1d2839ab"
+SRC_URI[md5sum] = "b66ec21e0a0ac331afb4b1bc5c9ef966"
+SRC_URI[sha256sum] = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8"
 
 inherit autotools-brokensep ptest pkgconfig
 
-CFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3"
-CPPFLAGS += "-I${STAGING_INCDIR}/nspr4 -I${STAGING_INCDIR}/nss3"
+#CFLAGS += "-I${STAGING_INCDIR}/nss3"
+#CPPFLAGS += "-I${STAGING_INCDIR}/nss3"
 
 PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
 PACKAGECONFIG[gnutls] = ",,gnutls"
 PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
-PACKAGECONFIG[nss] = "--with-nss=${STAGING_LIBDIR}/../.. --with-nspr=${STAGING_LIBDIR}/../..,,nss nspr"
+PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},,nss nspr"
 PACKAGECONFIG[openssl] = ",,openssl"
 PACKAGECONFIG[des] = ",--disable-des,,"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb b/meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb
new file mode 100644
index 0000000..865adc5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xxhash/xxhash_0.7.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Extremely fast non-cryptographic hash algorithm"
+DESCRIPTION = "xxHash is an extremely fast non-cryptographic hash algorithm, \
+working at speeds close to RAM limits."
+HOMEPAGE = "http://www.xxhash.com/"
+LICENSE = "BSD-2-Clause & GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=01a7eba4212ef1e882777a38585e7a9b"
+
+SRC_URI = "git://github.com/Cyan4973/xxHash.git"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+SRCREV = "d408e9b0606d07b1ddc5452ffc0ec8512211b174"
+
+S = "${WORKDIR}/git"
+
+do_compile () {
+	oe_runmake all
+}
+
+do_install () {
+	oe_runmake DESTDIR=${D} install
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch
new file mode 100644
index 0000000..64e0e8e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0001-zck.h-fix-build-on-musl.patch
@@ -0,0 +1,39 @@
+From 78247d478cec254bad27f4ed97b532f4f54bf1b0 Mon Sep 17 00:00:00 2001
+From: Pierre-Jean Texier <pjtexier@koncepto.io>
+Date: Thu, 23 Jan 2020 19:14:40 +0100
+Subject: [PATCH 1/2] zck.h: fix build on musl
+
+The ssize_t type requires the <sys/types.h> header. This fixes build with musl
+libc:
+
+include/zck.h:68:1: error: unknown type name 'ssize_t'; did you mean 'size_t'?
+   68 | ssize_t zck_read(zckCtx *zck, char *dst, size_t dst_size)
+      | ^~~~~~~
+      | size_t
+include/zck.h:81:1: error: unknown type name 'ssize_t'; did you mean 'size_t'?
+   81 | ssize_t zck_write(zckCtx *zck, const char *src, const size_t src_size)
+      | ^~~~~~~
+      | size_t
+      
+Upstream-Status: Submitted [https://github.com/zchunk/zchunk/pull/23]
+
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ include/zck.h.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/zck.h.in b/include/zck.h.in
+index 91d2557..b847576 100644
+--- a/include/zck.h.in
++++ b/include/zck.h.in
+@@ -5,6 +5,7 @@
+ 
+ #include <stdlib.h>
+ #include <stdbool.h>
++#include <sys/types.h>
+ 
+ typedef enum zck_hash {
+     ZCK_HASH_SHA1,
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch
new file mode 100644
index 0000000..a1c95bf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk/0002-unzck-fix-build-with-musl-libc.patch
@@ -0,0 +1,61 @@
+From 72c55e3da59eccdfea3778d11f83862b58af723d Mon Sep 17 00:00:00 2001
+From: Pierre-Jean Texier <pjtexier@koncepto.io>
+Date: Thu, 23 Jan 2020 22:42:40 +0100
+Subject: [PATCH 2/2] unzck: fix build with musl libc
+
+On musl libc "stdout" is a preprocessor macro whose expansion leads to
+compilation errors.
+
+Fixes:
+
+| In file included from ../git/src/unzck.c:31:
+| ../git/src/unzck.c: In function 'parse_opt':
+| ../git/src/unzck.c:78:24: error: expected identifier before '(' token
+|    78 |             arguments->stdout = true;
+|       |                        ^~~~~~
+| ../git/src/unzck.c: In function 'main':
+| ../git/src/unzck.c:141:20: error: expected identifier before '(' token
+|   141 |     if(!(arguments.stdout)) {
+|       |                    ^~~~~~
+
+Upstream-Status: Submitted [https://github.com/zchunk/zchunk/pull/23]
+
+Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
+---
+ src/unzck.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/unzck.c b/src/unzck.c
+index 8d6c62a..002492c 100644
+--- a/src/unzck.c
++++ b/src/unzck.c
+@@ -58,7 +58,7 @@ struct arguments {
+   char *args[1];
+   zck_log_type log_level;
+   bool dict;
+-  bool stdout;
++  bool stdOut;
+   bool exit;
+ };
+ 
+@@ -75,7 +75,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state) {
+                 arguments->log_level = ZCK_LOG_DDEBUG;
+             break;
+         case 'c':
+-            arguments->stdout = true;
++            arguments->stdOut = true;
+             break;
+         case 'V':
+             version();
+@@ -138,7 +138,7 @@ int main (int argc, char *argv[]) {
+         snprintf(out_name + strlen(base_name) - 4, 7, ".zdict");
+ 
+     int dst_fd = STDOUT_FILENO;
+-    if(!arguments.stdout) {
++    if(!arguments.stdOut) {
+         dst_fd = open(out_name, O_TRUNC | O_WRONLY | O_CREAT, 0666);
+         if(dst_fd < 0) {
+             dprintf(STDERR_FILENO, "Unable to open %s", out_name);
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb
new file mode 100644
index 0000000..f75412f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.5.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
+AUTHOR = "Jonathan Dieter"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cd6e590282010ce90a94ef25dd31410f"
+
+SRC_URI = " \
+	git://github.com/zchunk/zchunk.git;protocol=https \
+	file://0001-zck.h-fix-build-on-musl.patch \
+	file://0002-unzck-fix-build-with-musl-libc.patch \
+	"
+
+SRCREV = "c01bf12feede792982f165f52f4a6c573e3a8c17"
+S = "${WORKDIR}/git"
+
+DEPENDS = "\
+    curl \
+    zstd \
+    "
+
+DEPENDS_append_libc-musl = " argp-standalone"
+LDFLAGS_append_libc-musl = " -largp"
+
+inherit meson
+
+BBCLASSEXTEND = "native nativesdk"