meta-openembedded: subtree update:f623d8b574..936f2380bb

Alexander Vickberg (2):
      libwebsockets: upgrade to 4.1.6
      mbedtls: upgrade to 2.24.0

Bartosz Golaszewski (1):
      libgpiod: update v1.4.5 -> v1.6.2

Beniamin Sandu (1):
      trace-cmd: create recipe for version 2.9.1

Fabio Berton (2):
      beep: Add recipe for version 1.2.2
      linuxconsole: Add recipe for version 1.7.0

Gianfranco (1):
      dlt-daemon: add upstream patch to fix CVE-2020-29394

Kai Kang (1):
      colord: fix installed-vs-shipped error

Khem Raj (1):
      packagegroup-meta-python: Remove packages moved to core

Luca Boccassi (3):
      dbus-broker: rdepend on dbus-common
      dbus-brocker: upgrade 23 -> 24
      dbus-broker: upgrade 24 -> 25

Martin Jansa (1):
      nanopb: move to dynamic-layers

Michael Vetter (1):
      jasper: upgrade 2.0.22 -> 2.0.23

Philip Balister (1):
      spdlog: Fix recipe so other recipes can use spdlog with external fmt.

Robert Karszniewicz (1):
      firmwared: add recipe

Roland Hieber (5):
      pcsc-lite: provide pcsc-lite-lib-native explicitly for native build
      lockfile-progs: use DEBIAN_MIRROR in SRC_URI
      fbset: use DEBIAN_MIRROR in SRC_URI
      liboop: use upstream SRC_URI
      openct: use upstream SRC_URI

Senthil Selvaganesan (1):
      fcgiwrap: add recipe

Thomas Perrot (1):
      openocd: disable the support of ccache

Trevor Woerner (4):
      glmark2: update information
      glmark2: update to latest
      glmark2: add support for dispmanx
      glmark2: revert to previous behaviour

Vyacheslav Yurkov (1):
      python3-aiohttp: added missing RDEPENDs

Wang Mingyu (2):
      gensio: 2.1.4 -> 2.2.0
      ser2net: 4.2.0 -> 4.3.0

Zang Ruochen (7):
      dialog: upgrade 1.3-20200327 -> 1.3-20201126
      fmt: upgrade 7.1.2 -> 7.1.3
      hidapi: upgrade 0.10.0 -> 0.10.1
      opensc: upgrade 0.20.0 -> 0.20.1
      pugixml: upgrade 1.10 -> 1.11
      satyr: upgrade 0.31 -> 0.35
      nanopb: upgrade 0.4.3 -> 0.4.4

zhengruoqin (9):
      c-periphery: upgrade 2.2.4 -> 2.2.5
      crash: upgrade 7.2.8 -> 7.2.9
      dfu-util: upgrade 0.9 -> 0.10
      monit: upgrade 5.26.0 -> 5.27.1
      qpdf: upgrade 10.0.1 -> 10.0.4
      tcsh: upgrade 6.22.02 -> 6.22.03
      xserver-xorg-cvt-native: upgrade 1.20.5 -> 1.20.9
      zchunk: upgrade 1.1.6 -> 1.1.7
      libconfig-autoconf-perl: upgrade 0.318 -> 0.319

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I8371eb789fa288193da895bd51ce2160194809d8
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/fix-incorrect-EOF-check-in-ssl_context_info.patch b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/fix-incorrect-EOF-check-in-ssl_context_info.patch
new file mode 100644
index 0000000..836fce9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/fix-incorrect-EOF-check-in-ssl_context_info.patch
@@ -0,0 +1,57 @@
+From d696e7d91e42a190d06760279d2e396392143454 Mon Sep 17 00:00:00 2001
+From: Nayna Jain <nayna@linux.ibm.com>
+Date: Thu, 13 Aug 2020 19:17:53 +0000
+Subject: [PATCH] programs/ssl: Fix incorrect EOF check in ssl_context_info.c
+
+In `read_next_b64_code()`, the result of fgetc() is stored into a char,
+but later compared against EOF, which is generally -1.  On platforms
+where char is unsigned, this generates a compiler warning/error that the
+comparison will never be true (causing a build failure).  The value will
+never match, with the function ultimately bailing with a "Too many bad
+symbols are detected" error.
+
+On platforms with signed char, EOF is detected, but a file containing a
+0xFF character will causes a premature end of file exit of the loop.
+
+Fix this by changing the result to an int.
+
+Fixes #3794.
+
+Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
+Signed-off-by: David Brown <david.brown@linaro.org>
+---
+ ChangeLog.d/bugfix_3794.txt     | 4 ++++
+ programs/ssl/ssl_context_info.c | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+ create mode 100644 ChangeLog.d/bugfix_3794.txt
+
+diff --git a/ChangeLog.d/bugfix_3794.txt b/ChangeLog.d/bugfix_3794.txt
+new file mode 100644
+index 0000000000..a483ea76ae
+--- /dev/null
++++ b/ChangeLog.d/bugfix_3794.txt
+@@ -0,0 +1,4 @@
++Bugfix
++  * Fix handling of EOF against 0xff bytes and on platforms with
++    unsigned chars.  Fixes a build failure on platforms where char is
++    unsigned.  Fixes #3794.
+diff --git a/programs/ssl/ssl_context_info.c b/programs/ssl/ssl_context_info.c
+index df8819a804..d109c1e6f7 100644
+--- a/programs/ssl/ssl_context_info.c
++++ b/programs/ssl/ssl_context_info.c
+@@ -377,13 +377,13 @@ size_t read_next_b64_code( uint8_t **b64, size_t *max_len )
+     int valid_balance = 0;  /* balance between valid and invalid characters */
+     size_t len = 0;
+     char pad = 0;
+-    char c = 0;
++    int c = 0;
+ 
+     while( EOF != c )
+     {
+         char c_valid = 0;
+ 
+-        c = (char) fgetc( b64_file );
++        c = fgetc( b64_file );
+ 
+         if( pad > 0 )
+         {
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.24.0.bb
similarity index 83%
rename from meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.6.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.24.0.bb
index 8e4b6c8..e3a0169 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.6.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.24.0.bb
@@ -18,13 +18,15 @@
 HOMEPAGE = "https://tls.mbed.org/"
 
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=302d50a6369f5f22efdb674db908167a"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SECTION = "libs"
 
-SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz"
-SRC_URI[md5sum] = "1f629a43c166de2eca808f3e30aa961d"
-SRC_URI[sha256sum] = "66455e23a6190a30142cdc1113f7418158839331a9d8e6b0778631d077281770"
+S = "${WORKDIR}/git"
+SRCREV = "523f0554b6cdc7ace5d360885c3f5bbcc73ec0e8"
+SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=development \
+           file://fix-incorrect-EOF-check-in-ssl_context_info.patch \
+"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.3.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.4.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.3.bb
rename to meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.4.bb
index ed1a719..19db89b 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nanopb/nanopb_0.4.3.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.4.bb
@@ -5,7 +5,7 @@
 DEPENDS = "protobuf-native"
 
 SRC_URI = "git://github.com/nanopb/nanopb.git"
-SRCREV = "1466e6f953835b191a7f5acf0c06c941d4cd33d9"
+SRCREV = "2b48a361786dfb1f63d229840217a93aae064667"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch
new file mode 100644
index 0000000..e9b880c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch
@@ -0,0 +1,125 @@
+From 56e4959f0bc3e442c813d78e8ab6b3bf64b4ac66 Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 2 Dec 2020 20:27:42 +0000
+Subject: [PATCH] fix dispmanx build
+
+For when the user is building "--with-flavors dispmanx-glesv2", fixes a bunch
+of "redeclared as different kind of symbol" problems.
+
+This patch is almost entirely from:
+	https://github.com/glmark2/glmark2/commit/3b1a0f78d03ae126b78ee52a7c434809115e5993
+
+Which was created by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
+
+See:
+	https://github.com/glmark2/glmark2/issues/80
+
+My contribution is to tweak the wscript to link all the required libraries.
+
+Upstream-status: submitted [https://github.com/glmark2/glmark2/pull/135]
+Signed-off-by: Trevor Woerner <twoerner@gmail.com>
+---
+ src/native-state-dispmanx.cpp | 22 +++++++++++++++++-----
+ src/native-state-dispmanx.h   |  7 +++----
+ wscript                       |  2 +-
+ 3 files changed, 21 insertions(+), 10 deletions(-)
+
+diff --git a/src/native-state-dispmanx.cpp b/src/native-state-dispmanx.cpp
+index 2117386..49f74e7 100644
+--- a/src/native-state-dispmanx.cpp
++++ b/src/native-state-dispmanx.cpp
+@@ -23,13 +23,25 @@
+ #include "native-state-dispmanx.h"
+ #include "log.h"
+ 
++#include "EGL/egl.h"
++
+ #include <cstring>
+ #include <csignal>
+ 
++struct NativeStateDispmanx::Private
++{
++    Private()
++    {
++	memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window));
++    }
++
++    EGL_DISPMANX_WINDOW_T egl_dispmanx_window;
++};
++
+ NativeStateDispmanx::NativeStateDispmanx()
++    : priv{std::make_unique<Private>()}
+ {
+     memset(&properties_, 0, sizeof(properties_));
+-    memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window));
+ }
+ 
+ NativeStateDispmanx::~NativeStateDispmanx()
+@@ -99,9 +111,9 @@ NativeStateDispmanx::create_window(WindowProperties const& properties)
+ 					       0 /*clamp*/,
+ 					       DISPMANX_NO_ROTATE);
+ 
+-    egl_dispmanx_window.element = dispmanx_element;
+-    egl_dispmanx_window.width = dst_rect.width;
+-    egl_dispmanx_window.height = dst_rect.height;
++    priv->egl_dispmanx_window.element = dispmanx_element;
++    priv->egl_dispmanx_window.width = dst_rect.width;
++    priv->egl_dispmanx_window.height = dst_rect.height;
+     vc_dispmanx_update_submit_sync(dispmanx_update);
+ 
+     return true;
+@@ -111,7 +123,7 @@ void*
+ NativeStateDispmanx::window(WindowProperties &properties)
+ {
+     properties = properties_;
+-    return &egl_dispmanx_window;
++    return &priv->egl_dispmanx_window;
+ }
+ 
+ void
+diff --git a/src/native-state-dispmanx.h b/src/native-state-dispmanx.h
+index a6ed3d4..794b2d3 100644
+--- a/src/native-state-dispmanx.h
++++ b/src/native-state-dispmanx.h
+@@ -24,10 +24,8 @@
+ #define GLMARK2_NATIVE_STATE_DISPMANX_H_
+ 
+ #include <vector>
++#include <memory>
+ #include "bcm_host.h"
+-#include "GLES/gl.h"
+-#include "EGL/egl.h"
+-#include "EGL/eglext.h"
+ 
+ #include "native-state.h"
+ 
+@@ -46,11 +44,12 @@ public:
+     void flip();
+ 
+ private:
++    struct Private;
+     DISPMANX_DISPLAY_HANDLE_T dispmanx_display;
+     DISPMANX_UPDATE_HANDLE_T dispmanx_update;
+     DISPMANX_ELEMENT_HANDLE_T dispmanx_element;
+-    EGL_DISPMANX_WINDOW_T egl_dispmanx_window;
+     WindowProperties properties_;
++    std::unique_ptr<Private> priv;
+ };
+ 
+ #endif /* GLMARK2_NATIVE_STATE_DISPMANX_H_ */
+diff --git a/wscript b/wscript
+index e09fa78..6c3869c 100644
+--- a/wscript
++++ b/wscript
+@@ -205,7 +205,7 @@ def configure_linux(ctx):
+ 
+         ctx.check_cxx(lib = 'brcmGLESv2', uselib_store = 'glesv2', libpath='/opt/vc/lib')
+         ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2'], uselib_store = 'egl', libpath='/opt/vc/lib')
+-        ctx.check_cxx(lib = ['bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib')
++        ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2', 'vchostif', 'bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib')
+ 
+     # Check optional packages
+     opt_pkgs = [('x11', 'x11', None, list_contains(ctx.options.flavors, 'x11')),
+-- 
+2.28.0.497.g54e85e7af1
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch
new file mode 100644
index 0000000..27bd62e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch
@@ -0,0 +1,30 @@
+From 110ef8357ebaf24bc3995e631ec809a2f84c3b87 Mon Sep 17 00:00:00 2001
+From: Trevor Woerner <twoerner@gmail.com>
+Date: Thu, 3 Dec 2020 07:16:58 -0500
+Subject: [PATCH] run dispmanx fullscreen
+
+The dispmanx flavour can only run fullscreen, therefore set the size to
+fullscreen when glmark2-es2-dispmanx is run.
+
+Upstream-status: submitted [https://github.com/glmark2/glmark2/pull/135]
+Signed-off-by: Trevor Woerner <twoerner@gmail.com>
+---
+ src/main.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/main.cpp b/src/main.cpp
+index 677962e..273a217 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -164,6 +164,11 @@ main(int argc, char *argv[])
+         Options::size = std::pair<int,int>(800, 600);
+     }
+ 
++#if GLMARK2_USE_DISPMANX
++    /* dispmanx can only run fullscreen */
++    Options::size = std::pair<int,int>(-1, -1);
++#endif
++
+     // Create the canvas
+ #if GLMARK2_USE_X11
+     NativeStateX11 native_state;
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 2e727a0..44bce9f 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -1,31 +1,36 @@
 SUMMARY = "OpenGL (ES) 2.0 benchmark"
 DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \
 It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0."
-HOMEPAGE = "https://launchpad.net/glmark2"
-BUGTRACKER = "https://bugs.launchpad.net/glmark2"
+HOMEPAGE = "https://github.com/glmark2/glmark2"
+BUGTRACKER = "https://github.com/glmark2/glmark2/issues"
 
 LICENSE = "GPLv3+ & SGIv1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
 
 DEPENDS = "libpng jpeg udev"
+DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native', '', d)}"
 
-PV = "20191226+${SRCPV}"
+PV = "20201114+${SRCPV}"
 
-COMPATIBLE_HOST_rpi  = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '.*-linux*', 'null', d)}"
-
-SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https"
-SRCREV = "72dabc5d72b49c6d45badeb8a941ba4d829b0bd6"
+SRC_URI = " \
+    git://github.com/glmark2/glmark2.git;protocol=https \
+    file://0001-fix-dispmanx-build.patch \
+    file://0002-run-dispmanx-fullscreen.patch \
+    "
+SRCREV = "784aca755a469b144acf3cae180b6e613b7b057a"
 
 S = "${WORKDIR}/git"
 
 inherit waf pkgconfig features_check
 
-REQUIRED_DISTRO_FEATURES += "opengl"
+ANY_OF_DISTRO_FEATURES = "opengl dispmanx"
 
 PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gles2', '', d)} \
                   ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gles2', '', d)} \
-                  drm-gles2"
+                  ${@bb.utils.contains('DISTRO_FEATURES', 'dispmanx', 'dispmanx', '', d)} \
+                  drm-gles2 \
+                 "
 
 PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
 PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
@@ -33,6 +38,7 @@
 PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm virtual/libgbm"
 PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
 PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
+PACKAGECONFIG[dispmanx] = ",,virtual/libgles2 virtual/libx11"
 
 python __anonymous() {
     packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
@@ -49,6 +55,8 @@
         flavors.append("drm-glesv2")
     if "drm-gl" in packageconfig:
         flavors.append("drm-gl")
+    if "dispmanx" in packageconfig:
+        flavors = ["dispmanx-glesv2"]
     if flavors:
         d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors))
 }
diff --git a/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service b/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service
new file mode 100644
index 0000000..c2106a2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Linux Firmware Loader Daemon
+
+[Service]
+Type=simple
+ExecStart=@BINDIR@/firmwared -d /lib/firmware
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb b/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
new file mode 100644
index 0000000..43fc598
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Linux Firmware Loader Daemon"
+DESCRIPTION = "The Linux Firmware Loader Daemon monitors the kernel for \
+firmware requests and uploads the firmware blobs it has via the sysfs \
+interface."
+HOMEPAGE = "https://github.com/teg/firmwared"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE-APACHE;md5=7b486c2338d225a1405d979ed2c15ce8 \
+                    file://COPYING;md5=daa868b8e1ae17d03228a1145b4060da"
+
+SRC_URI = "git://github.com/teg/firmwared.git \
+           file://firmwared.service"
+
+PV = "0+git${SRCPV}"
+SRCREV = "2e6b5db43d63a5c0283a4cae9a6a20b7ad107a04"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "glib-2.0 systemd"
+
+inherit pkgconfig autotools systemd features_check
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SYSTEMD_SERVICE_${PN} = "firmwared.service"
+
+do_configure_prepend() {
+    ${S}/autogen.sh
+}
+
+do_install_append() {
+    install -d ${D}${systemd_system_unitdir}
+    install -m 0644 ${WORKDIR}/firmwared.service ${D}${systemd_system_unitdir}
+    sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/firmwared.service
+}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-Modify-parameter-of-function-sctp_gensio_alloc.patch b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-Modify-parameter-of-function-sctp_gensio_alloc.patch
new file mode 100644
index 0000000..22a4525
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-Modify-parameter-of-function-sctp_gensio_alloc.patch
@@ -0,0 +1,29 @@
+From b94eff3461e4fb99cd761d6858e8ed94cb6c5412 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Tue, 8 Dec 2020 11:58:06 +0900
+Subject: [PATCH] 0001-Modify-parameter-of-function-sctp_gensio_alloc.patch
+
+parameter type of declearation is const, definition should also be
+const.
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
+---
+ lib/gensio_sctp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/gensio_sctp.c b/lib/gensio_sctp.c
+index bd9437f..4278ff8 100644
+--- a/lib/gensio_sctp.c
++++ b/lib/gensio_sctp.c
+@@ -1092,7 +1092,7 @@ str_to_sctp_gensio_accepter(const char *str, const char * const args[],
+ #else
+ 
+ int
+-sctp_gensio_alloc(struct gensio_addr *iai, const char * const args[],
++sctp_gensio_alloc(const struct gensio_addr *iai, const char * const args[],
+ 		  struct gensio_os_funcs *o,
+ 		  gensio_event cb, void *user_data,
+ 		  struct gensio **new_gensio)
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.1.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.2.0.bb
similarity index 85%
rename from meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.1.4.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.2.0.bb
index 9d73da9..424e176 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.2.0.bb
@@ -5,10 +5,10 @@
                     file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f \
                     "
 
-SRCREV = "998a017076a86179696a3ad811e2bae9155e46cb"
+SRCREV = "4ec19138aa968dea34e4bc4e022c1ad7ed4c43c0"
 
 SRC_URI = "git://github.com/cminyard/gensio;protocol=https \
-           "
+           file://0001-Modify-parameter-of-function-sctp_gensio_alloc.patch"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.20.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.20.bb
deleted file mode 100644
index 5427daa..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.20.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Canonical libwebsockets.org websocket library"
-HOMEPAGE = "https://libwebsockets.org/"
-LICENSE = "MIT & Zlib & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8c47b078124308a4e1354e8d59f606b7"
-
-DEPENDS = "zlib"
-
-S = "${WORKDIR}/git"
-SRCREV = "ec9e8ab892f2dc569ae09336c80c2796fd14a6ff"
-SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.0-stable"
-
-UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ?= "libuv client server http2 ssl"
-PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
-PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
-PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
-PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
-PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
-PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
-PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
-PACKAGECONFIG[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON,"
-
-EXTRA_OECMAKE += " \
-    -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
-"
-
-PACKAGES =+ "${PN}-testapps"
-
-FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*"
-
-CFLAGS_append = " -Wno-error"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.1.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.1.6.bb
new file mode 100644
index 0000000..6a3eb91
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.1.6.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Canonical libwebsockets.org websocket library"
+HOMEPAGE = "https://libwebsockets.org/"
+LICENSE = "MIT & Zlib & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c47b078124308a4e1354e8d59f606b7"
+
+DEPENDS = "zlib"
+
+S = "${WORKDIR}/git"
+SRCREV = "736f0739ed8c75db0e29c7678b5a9194e957c347"
+SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.1-stable"
+
+UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ?= "libuv client server http2 ssl"
+PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
+PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
+PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
+PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent"
+PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
+PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
+PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
+PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
+PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
+
+EXTRA_OECMAKE += " \
+    -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+"
+
+PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev"
+
+FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*"
+FILES_${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so"
+FILES_${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so"
+FILES_${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so"
+
+RDEPENDS_${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}"
+RDEPENDS_${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}"
+RDEPENDS_${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}"
+
+RDEPENDS_${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.0.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.2.0.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.0.bb
index 13794ad..6293d12 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.0.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "1d895f005896e8c5bcff4fe573e2fec3611bf4feee1247857e476b74323d916c"
+SRC_URI[sha256sum] = "5e407d684d0aa0919ddd15af368f890c5940cddd6034b7efc363823f38f6ff0c"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_23.bb b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_25.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_23.bb
rename to meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_25.bb
index c622e48..1f62c14 100644
--- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_23.bb
+++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_25.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
 
 SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/dbus-broker-${PV}.tar.xz"
-SRC_URI[sha256sum] = "95adfde56bce898c3b69eee0524732365e802348dd8189a35d5d00c30990dc81"
+SRC_URI[sha256sum] = "a54fc5192280caf5824b82cb40f295c1195ad73c71bea5bd60218afb9df5bb29"
 
 UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases"
 
@@ -17,6 +17,8 @@
 DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
 DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'audit', '', d)}"
 
+RDEPENDS_${PN} += "dbus-common"
+
 REQUIRED_DISTRO_FEATURES = "systemd"
 
 SYSTEMD_SERVICE_${PN} = "${BPN}.service"
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index e62b1eb..2c46d21 100644
--- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -87,6 +87,7 @@
     acpitool \
     cpufrequtils \
     edac-utils \
+    firmwared \
     flashrom \
     irda-utils \
     lmsensors-config-cgi \
@@ -596,6 +597,7 @@
     minicoredumper \
     oprofile \
     spidev-test \
+    trace-cmd \
 "
 RDEPENDS_packagegroup-meta-oe-kernel_append_x86 = " intel-speed-select ipmiutil pm-graph turbostat"
 RDEPENDS_packagegroup-meta-oe-kernel_append_x86-64 = " intel-speed-select ipmiutil kpatch pm-graph turbostat"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
index 4f6aaa8..05e06a2 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -54,3 +54,6 @@
 PACKAGECONFIG[sysfsgpio] = "--enable-sysfsgpio,--disable-sysfsgpio"
 PACKAGECONFIG[remote-bitbang] = "--enable-remote-bitbang,--disable-remote-bitbang"
 PACKAGECONFIG ??= "sysfsgpio remote-bitbang"
+
+# Can't be built with ccache
+CCACHE_DISABLE = "1"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.bb
similarity index 85%
rename from meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
rename to meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.bb
index 6f62491..b5e63cd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.11.bb
@@ -10,8 +10,8 @@
 LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=d5ee91fb74cbb64223b3693fd64eb169"
 
 SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "f97237e9908201c6d8536210747b66af"
-SRC_URI[sha256sum] = "55f399fbb470942410d348584dc953bcaec926415d3462f471ef350f29b5870a"
+SRC_URI[md5sum] = "93540f4644fd4e4b02049554ef37fb90"
+SRC_URI[sha256sum] = "26913d3e63b9c07431401cf826df17ed832a20d19333d043991e611d23beaa2c"
 
 UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb b/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb
new file mode 100644
index 0000000..cafc869
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/beep/beep_1.2.2.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "beep is a command line tool for linux that beeps the PC speaker"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "\
+    http://johnath.com/beep/beep-${PV}.tar.gz \
+    file://linux-input.patch \
+"
+
+SRC_URI[sha256sum] = "5c0445dac43950b7c7c3f235c6fb21f620ab3fd2f3aafaf09896e5730fcf49a1"
+
+S = "${WORKDIR}/${BPN}-${PV}"
+
+EXTRA_OEMAKE += 'CC="${CC}"'
+EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"'
+
+do_configure[noexec] = "1"
+
+do_compile() {
+   oe_runmake
+}
+
+do_install() {
+	install -Dm 0755 ${B}/${PN} ${D}${bindir}/${PN}
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch b/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch
new file mode 100644
index 0000000..1b38ba7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/beep/files/linux-input.patch
@@ -0,0 +1,155 @@
+# the diff between Alessandro Zummo's copy of beep.c and the original
+# one...
+
+--- beep-1.2.2/beep.c.orig	2006-01-29 12:13:36.994560551 -0800
++++ beep-1.2.2/beep.c	2006-01-29 12:35:02.950558713 -0800
+@@ -26,6 +26,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <linux/kd.h>
++#include <linux/input.h>
+ 
+ /* I don't know where this number comes from, I admit that freely.  A 
+    wonderful human named Raine M. Ekman used it in a program that played
+@@ -86,18 +87,28 @@ typedef struct beep_parms_t {
+   struct beep_parms_t *next;  /* in case -n/--new is used. */
+ } beep_parms_t;
+ 
++enum { BEEP_TYPE_CONSOLE, BEEP_TYPE_EVDEV };
++
+ /* Momma taught me never to use globals, but we need something the signal 
+    handlers can get at.*/
+ int console_fd = -1;
++int console_type = BEEP_TYPE_CONSOLE;
++char *console_device = NULL;
++
++void do_beep(int freq);
+ 
+ /* If we get interrupted, it would be nice to not leave the speaker beeping in
+    perpetuity. */
+ void handle_signal(int signum) {
++  
++  if(console_device)
++    free(console_device);
++    
+   switch(signum) {
+   case SIGINT:
+     if(console_fd >= 0) {
+       /* Kill the sound, quit gracefully */
+-      ioctl(console_fd, KIOCSOUND, 0);
++      do_beep(0);
+       close(console_fd);
+       exit(signum);
+     } else {
+@@ -110,7 +121,7 @@ void handle_signal(int signum) {
+ /* print usage and exit */
+ void usage_bail(const char *executable_name) {
+   printf("Usage:\n%s [-f freq] [-l length] [-r reps] [-d delay] "
+-	 "[-D delay] [-s] [-c]\n",
++	 "[-D delay] [-s] [-c] [-e device]\n",
+ 	 executable_name);
+   printf("%s [Options...] [-n] [--new] [Options...] ... \n", executable_name);
+   printf("%s [-h] [--help]\n", executable_name);
+@@ -141,11 +152,12 @@ void usage_bail(const char *executable_n
+ void parse_command_line(int argc, char **argv, beep_parms_t *result) {
+   int c;
+ 
+-  struct option opt_list[4] = {{"help", 0, NULL, 'h'},
++  struct option opt_list[] = {{"help", 0, NULL, 'h'},
+ 			       {"version", 0, NULL, 'V'},
+ 			       {"new", 0, NULL, 'n'},
++			       {"device", 1, NULL, 'e'},
+ 			       {0,0,0,0}};
+-  while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVn", opt_list, NULL))
++  while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVne:", opt_list, NULL))
+ 	!= EOF) {
+     int argval = -1;    /* handle parsed numbers for various arguments */
+     float argfreq = -1; 
+@@ -207,6 +219,9 @@ void parse_command_line(int argc, char *
+       result->next->next       = NULL;
+       result = result->next; /* yes, I meant to do that. */
+       break;
++    case 'e' : /* also --device */
++      console_device = strdup(optarg);
++      break;
+     case 'h' : /* notice that this is also --help */
+     default :
+       usage_bail(argv[0]);
+@@ -214,26 +229,61 @@ void parse_command_line(int argc, char *
+   }
+ }  
+ 
++void do_beep(int freq)
++{
++  if (console_type == BEEP_TYPE_CONSOLE)
++  {
++    if(ioctl(console_fd, KIOCSOUND, freq != 0
++      ? (int)(CLOCK_TICK_RATE/freq)
++      : freq) < 0) {
++      printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
++      perror("ioctl");
++    }
++  }
++  else
++  {
++     /* BEEP_TYPE_EVDEV */
++     struct input_event e;
++ 
++     e.type = EV_SND;
++     e.code = SND_TONE;
++     e.value = freq;
++  
++     write(console_fd, &e, sizeof(struct input_event));
++  }
++}
++
+ void play_beep(beep_parms_t parms) {
+   int i; /* loop counter */
+ 
+   /* try to snag the console */
+-  if((console_fd = open("/dev/console", O_WRONLY)) == -1) {
+-    fprintf(stderr, "Could not open /dev/console for writing.\n");
++
++  if(console_device)
++    console_fd = open(console_device, O_WRONLY);
++  else
++    if((console_fd = open("/dev/input/event0", O_WRONLY)) == -1)
++      if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
++        console_fd = open("/dev/vc/0", O_WRONLY);
++      
++  if(console_fd == -1) {
++    fprintf(stderr, "Could not open %s for writing\n",
++      console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
+     printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
+     perror("open");
+     exit(1);
+   }
+   
++  if (ioctl(console_fd, EVIOCGSND(0)) != -1)
++    console_type = BEEP_TYPE_EVDEV;
++  else
++    console_type = BEEP_TYPE_CONSOLE;
++  
+   /* Beep */
+   for (i = 0; i < parms.reps; i++) {                    /* start beep */
+-    if(ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq)) < 0) {
+-      printf("\a");  /* Output the only beep we can, in an effort to fall back on usefulness */
+-      perror("ioctl");
+-    }
++    do_beep(parms.freq);
+     /* Look ma, I'm not ansi C compatible! */
+     usleep(1000*parms.length);                          /* wait...    */
+-    ioctl(console_fd, KIOCSOUND, 0);                    /* stop beep  */
++    do_beep(0);
+     if(parms.end_delay || (i+1 < parms.reps))
+        usleep(1000*parms.delay);                        /* wait...    */
+   }                                                     /* repeat.    */
+@@ -295,5 +345,8 @@ int main(int argc, char **argv) {
+     parms = next;
+   }
+ 
++  if(console_device)
++    free(console_device);
++    
+   return EXIT_SUCCESS;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb
rename to meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb
index 4c3177c..5097788 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20200327.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb
@@ -10,8 +10,8 @@
 
 SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
           "
-SRC_URI[md5sum] = "f7a3c240af305b5282af590541e8f4b7"
-SRC_URI[sha256sum] = "466163e8b97c2b7709d00389199add3156bd813f60ccb0335d0a30f2d4a17f99"
+SRC_URI[md5sum] = "14bf3b33de348838ff30aff0aa9d1c2e"
+SRC_URI[sha256sum] = "c9233a6c8ea33a59e2378e5146ae2bd13b519744cfdb647af7420adac5ad3866"
 
 # hardcoded here for use in dialog-static recipe
 S = "${WORKDIR}/dialog-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch
new file mode 100644
index 0000000..75065eb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch
@@ -0,0 +1,38 @@
+Upstream-status: Backport
+CVE: CVE-2020-29394
+From 7f5cd5404a03fa330e192084f6bdafb2dc9bdcb7 Mon Sep 17 00:00:00 2001
+From: GwanYeong Kim <gy741.kim@gmail.com>
+Date: Sat, 28 Nov 2020 12:24:46 +0900
+Subject: [PATCH] dlt_common: Fix buffer overflow in dlt_filter_load
+
+A buffer overflow in the dlt_filter_load function in dlt_common.c in dlt-daemon allows arbitrary code execution via an unsafe usage of fscanf, because it does not limit the number of characters to be read in a format argument.
+
+Fixed: #274
+
+Signed-off-by: GwanYeong Kim <gy741.kim@gmail.com>
+---
+ src/shared/dlt_common.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c
+index 254f4ce4..d15b1cec 100644
+--- a/src/shared/dlt_common.c
++++ b/src/shared/dlt_common.c
+@@ -404,7 +404,7 @@ DltReturnValue dlt_filter_load(DltFilter *filter, const char *filename, int verb
+     while (!feof(handle)) {
+         str1[0] = 0;
+ 
+-        if (fscanf(handle, "%s", str1) != 1)
++        if (fscanf(handle, "%254s", str1) != 1)
+             break;
+ 
+         if (str1[0] == 0)
+@@ -419,7 +419,7 @@ DltReturnValue dlt_filter_load(DltFilter *filter, const char *filename, int verb
+ 
+         str1[0] = 0;
+ 
+-        if (fscanf(handle, "%s", str1) != 1)
++        if (fscanf(handle, "%254s", str1) != 1)
+             break;
+ 
+         if (str1[0] == 0)
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
index f3fcee4..5066e76 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
@@ -19,6 +19,7 @@
     file://0004-Modify-systemd-config-directory.patch \
     file://241.patch \
     file://245.patch \
+    file://275.patch \
 "
 SRCREV = "f1ac087c766827b1d0ed9c3a814b3cc052e948f2"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb
new file mode 100644
index 0000000..68beec6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb
@@ -0,0 +1,12 @@
+SUMMARY = "inputattach configuration file"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "file://inputattach.conf"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+    install -Dm 0644 ${WORKDIR}/inputattach.conf ${D}${sysconfdir}/inputattach.conf
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf
new file mode 100644
index 0000000..86c4210
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf
@@ -0,0 +1,8 @@
+#
+# Configuration for inputattach
+#
+# Every line of this file are inputattach arguments, see 'inputattach --help'.
+# An inputattach instance will be started for each element.
+#
+# --microsoft /dev/ttyS0
+# --baud 9600 --w8001 /dev/ttyS1
diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules
new file mode 100644
index 0000000..3e0ab40
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules
@@ -0,0 +1,83 @@
+# /etc/udev/rules.d/51-these-are-not-joysticks-rm.rules
+#
+# This file is auto-generated. For more information:
+# https://github.com/denilsonsa/udev-joystick-blacklist
+
+SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules
new file mode 100644
index 0000000..24b009b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules
@@ -0,0 +1,7 @@
+# Restore any stored calibration for the device
+ACTION=="add", KERNEL=="js*", RUN+="/usr/bin/jscal-restore %E{DEVNAME}"
+
+# Set PS3 controller leds to the same value bluez will choose for it.
+# IMPORT{parent} used because $parent did not appear to be working; we
+# don't need the devpath of the js device for this so it is OK to overwrite.
+ACTION=="add", KERNEL=="js*", IMPORT{parent}="DEVPATH", ATTRS{name}=="Sony PLAYSTATION(R)3 Controller", RUN+="/lib/udev/js-set-enum-leds /sys/%E{DEVPATH}/device/leds/ $number"
diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service
new file mode 100644
index 0000000..2ec902c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Attach serial input devices to kernel input subsystem
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/inputattachctl start
+ExecStop=/usr/bin/inputattachctl stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl
new file mode 100644
index 0000000..c6da4e6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+do_start() {
+    grep -v '^#' /etc/inputattach.conf | while read -r line; do
+        inputattach --daemon $line || exit 1
+    done
+}
+
+case "$1" in
+    start)
+        do_start
+        ;;
+    stop)
+        killall -9 inputattach || true
+        ;;
+esac
diff --git a/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb
new file mode 100644
index 0000000..c4cd1d6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb
@@ -0,0 +1,83 @@
+SUMMARY = "Linux Console Project"
+DESCRIPTION = "This project maintains the Linux Console tools, which include \
+utilities to test and configure joysticks, connect legacy devices to the kernel's \
+input subsystem (providing support for serial mice, touchscreens etc.), and test \
+the input event layer."
+HOMEPAGE = "https://sourceforge.net/projects/linuxconsole"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libsdl2"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+SRC_URI = "\
+    ${SOURCEFORGE_MIRROR}/linuxconsole/linuxconsoletools-${PV}.tar.bz2 \
+    file://51-these-are-not-joysticks-rm.rules \
+    file://60-joystick.rules \
+    file://inputattachctl \
+    file://inputattach.service \
+"
+
+SRC_URI[sha256sum] = "95d112f06393806116341d593bda002c8bc44119c1538407623268fed90d8c34"
+
+S = "${WORKDIR}/linuxconsoletools-${PV}"
+
+inherit systemd pkgconfig
+
+EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} -C utils"
+EXTRA_OEMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'SYSTEMD_SUPPORT=1', '', d)}"
+
+SYSTEMD_PACKAGES += "inputattach"
+SYSTEMD_SERVICE_inputattach = "inputattach.service"
+SYSTEMD_AUTO_ENABLE_inputattach = "enable"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake install
+
+    install -Dm 0644 ${WORKDIR}/51-these-are-not-joysticks-rm.rules ${D}${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules
+    install -Dm 0644 ${WORKDIR}/60-joystick.rules ${D}${base_libdir}/udev/rules.d/60-joystick.rules
+
+    install -Dm 0644 ${WORKDIR}/inputattach.service ${D}${systemd_system_unitdir}/inputattach.service
+    install -Dm 0755 ${WORKDIR}/inputattachctl ${D}${bindir}/inputattachctl
+}
+
+PACKAGES += "inputattach joystick"
+
+# We won't package any file here as we are following the same packaging schema
+# Debian does and we are splitting it in 'inputattach' and 'joystick' packages.
+FILES_${PN} = ""
+
+FILES_inputattach += "\
+    ${bindir}/inputattach \
+    ${bindir}/inputattachctl \
+    ${systemd_system_unitdir}/inputattach.service \
+"
+
+FILES_joystick += "\
+    ${bindir}/evdev-joystick \
+    ${bindir}/ffcfstress \
+    ${bindir}/ffmvforce \
+    ${bindir}/ffset \
+    ${bindir}/fftest \
+    ${bindir}/jscal \
+    ${bindir}/jscal-restore \
+    ${bindir}/jscal-store \
+    ${bindir}/jstest \
+    ${datadir}/joystick \
+    ${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules \
+    ${base_libdir}/udev/js-set-enum-leds \
+    ${base_libdir}/udev/rules.d/60-joystick.rules \
+    ${base_libdir}/udev/rules.d/80-stelladaptor-joystick.rules \
+"
+
+RDEPENDS_inputattach += "inputattach-config"
+
+RDEPENDS_joystick += "\
+    bash \
+    gawk \
+"
diff --git a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb
index c76e0f6..a82f10b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
 DEPENDS = "liblockfile"
 
-SRC_URI = "http://ftp.de.debian.org/debian/pool/main/l/${BPN}/${BPN}_${PV}.tar.gz"
+SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.gz"
 SRC_URI[md5sum] = "4eb83bdf88016db836b7cc09591fb0f3"
 SRC_URI[sha256sum] = "a42995a4b97e6188efc90fcc1a761163c4b2cff5c81b936f85c84301ddb05ce6"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.22.bb b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.23.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.22.bb
rename to meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.23.bb
index b2b053a..2abd11a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.22.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.23.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a80440d1d8f17d041c71c7271d6e06eb"
 
 SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https"
-SRCREV = "95b2f0583a71c92cddefb54b522efe717b7a5adc"
+SRCREV = "cc02d63dde901e06d1f866984fd0e80601deaa13"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-Fix-for-an-ARM64-gcc-10-compilation-error.-Without-t.patch b/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-Fix-for-an-ARM64-gcc-10-compilation-error.-Without-t.patch
deleted file mode 100644
index c946444..0000000
--- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-Fix-for-an-ARM64-gcc-10-compilation-error.-Without-t.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 0dddb4e1158705345b7f4f71635d42c89e1b0c8f Mon Sep 17 00:00:00 2001
-From: Dave Anderson <anderson@redhat.com>
-Date: Fri, 31 Jan 2020 17:11:46 -0500
-Subject: [PATCH] Fix for an ARM64 gcc-10 compilation error.  Without the
- patch, the build of the embedded gdb module fails with an error message that
- indicates "multiple definition of 'tdesc_aarch64'". (anderson@redhat.com)
-
-Upstream-Status: Backport [https://github.com/crash-utility/crash/commit/e770735200c02ac2414c394ea6ec5f7f033efe64]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb-7.6.patch | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
-
-diff --git a/gdb-7.6.patch b/gdb-7.6.patch
-index f6c311d..f64b55f 100644
---- a/gdb-7.6.patch
-+++ b/gdb-7.6.patch
-@@ -2471,3 +2471,33 @@ diff -up gdb-7.6/opcodes/configure.orig gdb-7.6/opcodes/configure
-  #else
-  # error "!__i386__ && !__x86_64__"
-  #endif
-+--- gdb-7.6/gdb/features/aarch64.c.orig
-++++ gdb-7.6/gdb/features/aarch64.c
-+@@ -5,7 +5,6 @@
-+ #include "osabi.h"
-+ #include "target-descriptions.h"
-+ 
-+-struct target_desc *tdesc_aarch64;
-+ static void
-+ initialize_tdesc_aarch64 (void)
-+ {
-+--- gdb-7.6/gdb/aarch64-linux-nat.c.orig
-++++ gdb-7.6/gdb/aarch64-linux-nat.c
-+@@ -37,6 +37,7 @@
-+ 
-+ #include "gregset.h"
-+ 
-++extern struct target_desc *tdesc_aarch64;
-+ #include "features/aarch64.c"
-+ 
-+ /* Defines ps_err_e, struct ps_prochandle.  */
-+--- gdb-7.6/gdb/aarch64-tdep.c.orig
-++++ gdb-7.6/gdb/aarch64-tdep.c
-+@@ -52,6 +52,7 @@
-+ #include "gdb_assert.h"
-+ #include "vec.h"
-+ 
-++struct target_desc *tdesc_aarch64;
-+ #include "features/aarch64.c"
-+ #include "features/aarch64-without-fpu.c"
-+ 
--- 
-2.28.0
-
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.8.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.9.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.8.bb
rename to meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.9.bb
index 6e25336..4394b6f 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.8.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.9.bb
@@ -25,9 +25,8 @@
            file://remove-unrecognized-gcc-option-m32-for-mips.patch \
            file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
            file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
-           file://0001-Fix-for-an-ARM64-gcc-10-compilation-error.-Without-t.patch \
            "
-SRCREV = "24f4801f8c8871a2e3e660fe9fa8fdd86bb29876"
+SRCREV = "a25aa4b649d339dd25c20d5413d81b851a77e0b2"
 
 SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
 SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch
new file mode 100644
index 0000000..2209918
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch
@@ -0,0 +1,132 @@
+From b63f13d2df91ede45288653b21e0d30a6b45f2ac Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Mon, 30 Nov 2020 18:24:48 +0200
+Subject: [PATCH] trace-cmd: make it build with musl
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+---
+ include/trace-cmd/trace-cmd.h |  1 +
+ lib/trace-cmd/trace-msg.c     |  1 +
+ lib/trace-cmd/trace-plugin.c  |  2 ++
+ lib/tracefs/tracefs-events.c  |  1 +
+ tracecmd/trace-agent.c        |  1 +
+ tracecmd/trace-setup-guest.c  |  1 +
+ tracecmd/trace-tsync.c        | 15 ++++++++++-----
+ 7 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/include/trace-cmd/trace-cmd.h b/include/trace-cmd/trace-cmd.h
+index f3c95f3..a697905 100644
+--- a/include/trace-cmd/trace-cmd.h
++++ b/include/trace-cmd/trace-cmd.h
+@@ -6,6 +6,7 @@
+ #ifndef _TRACE_CMD_H
+ #define _TRACE_CMD_H
+ 
++#include <sys/types.h>
+ #include "traceevent/event-parse.h"
+ 
+ #define TRACECMD_MAGIC { 23, 8, 68 }
+diff --git a/lib/trace-cmd/trace-msg.c b/lib/trace-cmd/trace-msg.c
+index 4a0bfa9..fc1f2c7 100644
+--- a/lib/trace-cmd/trace-msg.c
++++ b/lib/trace-cmd/trace-msg.c
+@@ -21,6 +21,7 @@
+ #include <arpa/inet.h>
+ #include <sys/types.h>
+ #include <linux/types.h>
++#include <byteswap.h>
+ 
+ #include "trace-write-local.h"
+ #include "trace-cmd-local.h"
+diff --git a/lib/trace-cmd/trace-plugin.c b/lib/trace-cmd/trace-plugin.c
+index 92f9edf..c2ef3dc 100644
+--- a/lib/trace-cmd/trace-plugin.c
++++ b/lib/trace-cmd/trace-plugin.c
+@@ -8,6 +8,8 @@
+ #include <dlfcn.h>
+ #include <sys/stat.h>
+ #include <libgen.h>
++#include <limits.h>
++
+ #include "trace-cmd.h"
+ #include "trace-local.h"
+ 
+diff --git a/lib/tracefs/tracefs-events.c b/lib/tracefs/tracefs-events.c
+index 8e825f5..a8d8560 100644
+--- a/lib/tracefs/tracefs-events.c
++++ b/lib/tracefs/tracefs-events.c
+@@ -13,6 +13,7 @@
+ #include <errno.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++#include <limits.h>
+ 
+ #include "kbuffer.h"
+ #include "tracefs.h"
+diff --git a/tracecmd/trace-agent.c b/tracecmd/trace-agent.c
+index b581696..abfefac 100644
+--- a/tracecmd/trace-agent.c
++++ b/tracecmd/trace-agent.c
+@@ -20,6 +20,7 @@
+ #include <unistd.h>
+ #include <linux/vm_sockets.h>
+ #include <pthread.h>
++#include <limits.h>
+ 
+ #include "trace-local.h"
+ #include "trace-msg.h"
+diff --git a/tracecmd/trace-setup-guest.c b/tracecmd/trace-setup-guest.c
+index 899848c..99595a1 100644
+--- a/tracecmd/trace-setup-guest.c
++++ b/tracecmd/trace-setup-guest.c
+@@ -13,6 +13,7 @@
+ #include <string.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <limits.h>
+ 
+ #include "trace-local.h"
+ #include "trace-msg.h"
+diff --git a/tracecmd/trace-tsync.c b/tracecmd/trace-tsync.c
+index e639788..b8b5ac3 100644
+--- a/tracecmd/trace-tsync.c
++++ b/tracecmd/trace-tsync.c
+@@ -104,13 +104,15 @@ int tracecmd_host_tsync(struct buffer_instance *instance,
+ 
+ 	pthread_attr_init(&attrib);
+ 	pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
+-	if (!get_first_cpu(&pin_mask, &mask_size))
+-		pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
+ 
+ 	ret = pthread_create(&instance->tsync_thread, &attrib,
+ 			     tsync_host_thread, &instance->tsync);
+-	if (!ret)
++	if (!ret) {
++		if (!get_first_cpu(&pin_mask, &mask_size))
++			pthread_setaffinity_np(instance->tsync_thread, mask_size, pin_mask);
+ 		instance->tsync_thread_running = true;
++	}
++
+ 	if (pin_mask)
+ 		CPU_FREE(pin_mask);
+ 	pthread_attr_destroy(&attrib);
+@@ -243,11 +245,14 @@ unsigned int tracecmd_guest_tsync(char *tsync_protos,
+ 	pthread_attr_init(&attrib);
+ 	tsync->sync_proto = proto;
+ 	pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
+-	if (!get_first_cpu(&pin_mask, &mask_size))
+-		pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
+ 
+ 	ret = pthread_create(thr_id, &attrib, tsync_agent_thread, tsync);
+ 
++	if (!ret) {
++		if (!get_first_cpu(&pin_mask, &mask_size))
++			pthread_setaffinity_np(*thr_id, mask_size, pin_mask);
++	}
++
+ 	if (pin_mask)
+ 		CPU_FREE(pin_mask);
+ 	pthread_attr_destroy(&attrib);
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb b/meta-openembedded/meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb
new file mode 100644
index 0000000..d39afff
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "User-space front-end command-line tool for ftrace"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=873f48a813bded3de6ebc54e6880c4ac"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;branch=master \
+	file://0001-trace-cmd-make-it-build-with-musl.patch"
+
+SRCREV = "530b1a0caef39466e16bbd49de5afef89656f03f"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+       oe_runmake etcdir=${sysconfdir} DESTDIR=${D} install
+}
+
+FILES_${PN} += "${libdir}/traceevent/plugins"
diff --git a/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.0.1.bb b/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.0.4.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.0.1.bb
rename to meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.0.4.bb
index 5965b8d..ce11bc0 100644
--- a/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-printing/qpdf/qpdf_10.0.4.bb
@@ -7,8 +7,8 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/qpdf/qpdf-${PV}.tar.gz"
 
 LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3"
-SRC_URI[md5sum] = "eb7fb7c6cd5d3036bf4f7a5e3f44d995"
-SRC_URI[sha256sum] = "5d2277c738188b7f4e3f01a6db7f2937ed6df54671f1fba834cd3d7ff865827b"
+SRC_URI[md5sum] = "b4c6a66c45bb946944c2fe14ef02d0e0"
+SRC_URI[sha256sum] = "b191dc4af4ea4630cdc404a4ee95a0f21c12f56ecc4ae045f04425464d7c696e"
 
 inherit autotools-brokensep gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0001-Remove-defining-handle_interrupt-twice.patch b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0001-Remove-defining-handle_interrupt-twice.patch
deleted file mode 100644
index d6d6ae0..0000000
--- a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh/0001-Remove-defining-handle_interrupt-twice.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 2c77b61506aa867a873e3691214983b3eb7f652d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Aug 2020 19:49:35 -0700
-Subject: [PATCH] Remove defining handle_interrupt twice
-
-Fixes build with -fno-common
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tc.sig.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/tc.sig.c b/tc.sig.c
-index 77659ca..576605a 100644
---- a/tc.sig.c
-+++ b/tc.sig.c
-@@ -56,7 +56,6 @@ int alrmcatch_disabled; /* = 0; */
- int phup_disabled; /* = 0; */
- int pchild_disabled; /* = 0; */
- int pintr_disabled; /* = 0; */
--int handle_interrupt; /* = 0; */
- 
- int
- handle_pending_signals(void)
--- 
-2.28.0
-
diff --git a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.02.bb b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.03.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.02.bb
rename to meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.03.bb
index 541f550..fab626c 100644
--- a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.02.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.22.03.bb
@@ -12,10 +12,9 @@
     https://astron.com/pub/${BPN}/${BP}.tar.gz \
     file://0001-Enable-system-malloc-on-all-linux.patch \
     file://0002-Add-debian-csh-scripts.patch \
-    file://0001-Remove-defining-handle_interrupt-twice.patch \
 "
-SRC_URI[md5sum] = "f34909eab33733aecc05d27adc82277b"
-SRC_URI[sha256sum] = "ed287158ca1b00ba477e8ea57bac53609838ebcfd05fcb05ca95021b7ebe885b"
+SRC_URI[md5sum] = "c9387b7c8cf958956e75b1fa4e59b612"
+SRC_URI[sha256sum] = "be2cfd653d2a0c7f506d2dd14c12324ba749bd484037be6df44a3973f52262b7"
 
 EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'"
 inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.2.4.bb b/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.2.5.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.2.4.bb
rename to meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.2.5.bb
index 621e174..ff05227 100644
--- a/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.2.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.2.5.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4097ec544cf01e9c7cfc4bdf8e4ed887"
 
 SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https"
-SRCREV = "d34077d7ee45fa7d1947cc0174919452fac31597"
+SRCREV = "513f5edbcf2f2ec5c0cd711d1cc312eb2d753f1b"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/colord/colord.bb b/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
index df86708..f514c0b 100644
--- a/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
+++ b/meta-openembedded/meta-oe/recipes-support/colord/colord.bb
@@ -36,7 +36,7 @@
     ${datadir}/glib-2.0 \
     ${datadir}/color \
     ${systemd_user_unitdir} \
-    ${libdir}/tmpfiles.d \
+    ${nonarch_libdir}/tmpfiles.d \
     ${libdir}/colord-plugins \
     ${libdir}/colord-sensors \
 "
diff --git a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.10.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
rename to meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.10.bb
diff --git a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.10.bb
similarity index 72%
rename from meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
rename to meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.10.bb
index 8a2ac69..8635371 100644
--- a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
+++ b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.10.bb
@@ -7,7 +7,7 @@
 DEPENDS = "libusb1"
 
 SRC_URI = "http://dfu-util.sourceforge.net/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "233bb1e08ef4b405062445d84e28fde6"
-SRC_URI[sha256sum] = "36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833"
+SRC_URI[md5sum] = "8cf55663703cdc6b40f377f999eb8d3d"
+SRC_URI[sha256sum] = "a03dc58dfc79c056819c0544b2a5970537566460102b3d82cfb038c60e619b42"
 
 inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb b/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
index fbf834d..e3e406f 100644
--- a/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -14,7 +14,7 @@
 
 PR = "r4"
 
-SRC_URI = "http://ftp.debian.org/debian/pool/main/f/fbset/fbset_2.1.orig.tar.gz \
+SRC_URI = "${DEBIAN_MIRROR}/main/f/fbset/fbset_2.1.orig.tar.gz \
            file://makefile.patch \
            file://fbset-2.1-fix-makefile-dep.patch \
            file://0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_7.1.2.bb b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_7.1.3.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/fmt/fmt_7.1.2.bb
rename to meta-openembedded/meta-oe/recipes-support/fmt/fmt_7.1.3.bb
index 70b39be..9820b86 100644
--- a/meta-openembedded/meta-oe/recipes-support/fmt/fmt_7.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fmt/fmt_7.1.3.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b"
 
 SRC_URI += "git://github.com/fmtlib/fmt"
-SRCREV = "cc09f1a6798c085c325569ef466bcdcffdc266d4"
+SRCREV = "7bdf0628b1276379886c7f6dda2cef2b3b374f0b"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
index ef015dc..df68a85 100644
--- a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
@@ -11,6 +11,6 @@
 inherit autotools pkgconfig
 
 SRC_URI = "git://github.com/libusb/hidapi.git;protocol=https"
-PV = "0.10.0"
-SRCREV = "302d1f24018d5a4a480f92a72307616f88d97651"
+PV = "0.10.1"
+SRCREV = "f6d0073fcddbdda24549199445e844971d3c9cef"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.5.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.2.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.5.bb
rename to meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.2.bb
index aec50e7..c0cf545 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.4.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.2.bb
@@ -5,12 +5,12 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
 
 SRC_URI = "https://www.kernel.org/pub/software/libs/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "0da9e11dcb0ac0149967b0c4d3ed9cfd"
-SRC_URI[sha256sum] = "a041b06907c956dd1c77836cccf4d392af29b9fe09c8ad18449a6da707b5ba2d"
+SRC_URI[md5sum] = "4765470becb619fead3cdaeac61b9a77"
+SRC_URI[sha256sum] = "c601e71846f5ab140c83bc757fdd62a4fda24a9cee39cc5e99c96ec2bf1b06a9"
 
 inherit autotools pkgconfig python3native
 
-PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev glib-2.0 catch2"
 PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
 PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.1.bb b/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.1.bb
index 8ba3f72..8894a86 100644
--- a/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=8b54f38ccbd44feb80ab90e01af8b700"
 
-SRC_URI = "http://ftp.debian.org/debian/pool/main/libo/liboop/liboop_${PV}.orig.tar.gz \
+SRC_URI = "http://ftp.lysator.liu.se/pub/liboop/liboop-${PV}.tar.gz \
            file://tcl_dev.patch \
 "
 
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.27.1.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb
rename to meta-openembedded/meta-oe/recipes-support/monit/monit_5.27.1.bb
index a954682..0a1442f 100644
--- a/meta-openembedded/meta-oe/recipes-support/monit/monit_5.26.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/monit/monit_5.27.1.bb
@@ -15,8 +15,8 @@
 	file://monitrc \
 "
 
-SRC_URI[md5sum] = "9f7dc65e902c103e4c5891354994c3df"
-SRC_URI[sha256sum] = "87fc4568a3af9a2be89040efb169e3a2e47b262f99e78d5ddde99dd89f02f3c2"
+SRC_URI[md5sum] = "200068f37847e3402f6a9b061c2d327e"
+SRC_URI[sha256sum] = "f57408d16185687513a3c4eb3f2bb72eef76331ac16210e9652e846e5c84ed51"
 
 DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index 08b2e3c..1514c7a 100644
--- a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -11,7 +11,7 @@
 DEPENDS += "libtool pcsc-lite libusb-compat"
 
 SRC_URI = " \
-    ${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
+    https://downloads.sourceforge.net/project/opensc/${BPN}/${BPN}-${PV}.tar.gz \
     file://etc-openct.udev.in-disablePROGRAM.patch \
     file://etc-openct_usb.in-modify-UDEVINFO.patch \
     file://openct.init \
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.1.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.0.bb
rename to meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.1.bb
index a815980..2fbf60c1 100644
--- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.20.1.bb
@@ -9,10 +9,10 @@
 HOMEPAGE = "http://www.opensc-project.org/opensc/"
 SECTION = "System Environment/Libraries"
 LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cb8aedd3bced19bd8026d96a8b6876d7"
 
-#v0.19.0
-SRCREV = "45e29056ccde422e70ed3585084a7f150c632515"
+#v0.21.0
+SRCREV = "30180986a08cf71fe4af4b50251a8bb5b1ab95af"
 SRC_URI = "git://github.com/OpenSC/OpenSC \
           "
 DEPENDS = "virtual/libiconv openssl"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb
index 6f38d65..c1b7939 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.0.bb
@@ -36,6 +36,7 @@
 
 RRECOMMENDS_${PN} = "ccid"
 RRECOMMENDS_${PN}_class-native = ""
+RPROVIDES_${PN}_class-native += "pcsc-lite-lib-native"
 
 FILES_${PN} = "${sbindir}/pcscd"
 FILES_${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.31.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.35.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.31.bb
rename to meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.35.bb
index e99f8ac..c6159c4 100644
--- a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.31.bb
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.35.bb
@@ -10,7 +10,7 @@
 SRC_URI = "git://github.com/abrt/satyr.git \
            file://0002-fix-compile-failure-against-musl-C-library.patch \
 "
-SRCREV = "79506592fa61fa10aa2e186158eecfa10b39e905"
+SRCREV = "8690a1f83adc5a7a83e856ebc7adf6310bbd3b9f"
 S = "${WORKDIR}/git"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
@@ -20,6 +20,7 @@
     gperf-native \
     json-c \
     nettle \
+    glib-2.0 \
 "
 
 PACKAGES += "python3-${BPN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/files/0001-Enable-use-of-external-fmt-library.patch b/meta-openembedded/meta-oe/recipes-support/spdlog/files/0001-Enable-use-of-external-fmt-library.patch
new file mode 100644
index 0000000..b62b379
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/files/0001-Enable-use-of-external-fmt-library.patch
@@ -0,0 +1,26 @@
+From 23ce2fe30e7485d48e2864bdd8276119fbb8cbd1 Mon Sep 17 00:00:00 2001
+From: Philip Balister <philip@balister.org>
+Date: Thu, 3 Dec 2020 09:22:50 -0500
+Subject: [PATCH] Enable use of external fmt library.
+
+Signed-off-by: Philip Balister <philip@balister.org>
+---
+ include/spdlog/tweakme.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/spdlog/tweakme.h b/include/spdlog/tweakme.h
+index 244bc3b3..2594a6fe 100644
+--- a/include/spdlog/tweakme.h
++++ b/include/spdlog/tweakme.h
+@@ -63,7 +63,7 @@
+ // In this case spdlog will try to include <fmt/format.h> so set your -I flag
+ // accordingly.
+ //
+-// #define SPDLOG_FMT_EXTERNAL
++#define SPDLOG_FMT_EXTERNAL
+ ///////////////////////////////////////////////////////////////////////////////
+ 
+ ///////////////////////////////////////////////////////////////////////////////
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.1.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.1.bb
index 7d28fff..34937c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.8.1.bb
@@ -4,7 +4,8 @@
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
 SRCREV = "cbe9448650176797739dbab13961ef4c07f4290f"
-SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;"
+SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x; \
+           file://0001-Enable-use-of-external-fmt-library.patch"
 
 DEPENDS += "fmt"
 
@@ -12,7 +13,7 @@
 
 BBCLASSEXTEND = "native"
 # no need to build example&text&benchmarks on pure yocto
-EXTRA_OECMAKE += "-DSPDLOG_INSTALL=on -DSPDLOG_BUILD_EXAMPLES=off -DSPDLOG_BUILD_TESTS=off -DSPDLOG_BUILD_BENCH=off -DSPDLOG_FMT_EXTERNAL=on"
+EXTRA_OECMAKE += "-DSPDLOG_INSTALL=on -DSPDLOG_BUILD_SHARED=on -DSPDLOG_BUILD_EXAMPLES=off -DSPDLOG_BUILD_TESTS=off -DSPDLOG_BUILD_BENCH=off -DSPDLOG_FMT_EXTERNAL=on"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.5.bb b/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.9.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.5.bb
rename to meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.9.bb
index 1d75d52..b7dcc70 100644
--- a/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.9.bb
@@ -8,8 +8,8 @@
 XORG_PN = "xorg-server"
 
 SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "c9fc7e21e11286dbedd22c00df652130"
-SRC_URI[sha256sum] = "a81d8243f37e75a03d4f8c55f96d0bc25802be6ec45c3bfa5cb614c6d01bac9d"
+SRC_URI[md5sum] = "afcae2f46d47c33863cab7fd9db7279a"
+SRC_URI[sha256sum] = "e219f2e0dfe455467939149d7cd2ee53b79b512cc1d2094ae4f5c9ed9ccd3571"
 
 S = "${WORKDIR}/${XORG_PN}-${PV}"
 B = "${WORKDIR}/build"
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.6.bb b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.7.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.6.bb
rename to meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.7.bb
index e041132..df75a6e 100644
--- a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.1.7.bb
@@ -6,7 +6,7 @@
 
 SRC_URI = "git://github.com/zchunk/zchunk.git;protocol=https"
 
-SRCREV = "f5593aa11584faa691c81b4898f0aaded47f8bf7"
+SRCREV = "45720028e69f09d1bec3c6a2af802ae2b06feb6e"
 S = "${WORKDIR}/git"
 
 DEPENDS = "\
diff --git a/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb b/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
similarity index 91%
rename from meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb
rename to meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
index afd26fa..25e01fa 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.318.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
@@ -16,8 +16,8 @@
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/R/RE/REHSACK/Config-AutoConf-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "0bea721ad3996e20324b84b3b924ec71"
-SRC_URI[sha256sum] = "33c930feec3003de251ca222abe8bbeb74610ad07f65fc16f27d74d195eeab34"
+SRC_URI[md5sum] = "eeeab8cc93eef7dd2e2c343ecdf247b7"
+SRC_URI[sha256sum] = "304f66cc2653264c0fe127d21669e86d3d18cd72f2574d8f5131beec31a0a33e"
 RDEPENDS_${PN} += "libcapture-tiny-perl"
 RDEPENDS_${PN} += "perl-module-base"
 RDEPENDS_${PN} += "perl-module-carp"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index 024503d..bf46896 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -27,7 +27,6 @@
     python3-asciitree \
     python3-flask-sqlalchemy \
     python3-gevent \
-    python3-attrs \
     python3-aenum \
     python3-gast \
     python3-blinker \
@@ -56,7 +55,6 @@
     python3-asn1crypto \
     python3-async-timeout \
     python3-absl \
-    python3-atomicwrites \
     python3-attr \
     python3-flask \
     python3-autobahn \
@@ -151,7 +149,6 @@
     python3-keras-applications \
     python3-idna \
     python3-sympy \
-    python3-importlib-metadata \
     python3-langtable \
     python3-lockfile \
     python3-nmap \
@@ -170,10 +167,8 @@
     python3-lorem \
     python3-javaobj-py3 \
     python3-passlib \
-    python3-pathlib2 \
     python3-pexpect \
     python3-luma-oled \
-    python3-pluggy \
     python3-lxml \
     python3-precise-runner \
     python3-padaos \
@@ -251,7 +246,6 @@
     python3-natsort \
     python3-polyline \
     python3-ordered-set \
-    python3-packaging \
     python3-parso \
     python3-pycparser \
     python3-pycrypto \
@@ -267,14 +261,12 @@
     python3-pickleshare \
     python3-pyopenssl \
     python3-protobuf \
-    python3-py \
     python3-pyasn1-modules \
     python3-pyscaffold \
     python3-pyserial \
     python3-pysocks \
     python3-pytoml \
     python3-pytest-helpers-namespace \
-    python3-more-itertools \
     python3-pytest-tempdir \
     python3-pyflakes \
     python3-pyrad \
@@ -301,8 +293,6 @@
     python3-pocketsphinx \
     python3-sdnotify \
     python3-pycodestyle \
-    python3-pytest \
-    python3-iniconfig \
     python3-speaklater \
     python3-wtforms \
     python3-speedtest-cli \
@@ -326,12 +316,10 @@
     python3-trafaret \
     python3-urllib3 \
     python3-yappi \
-    python3-zipp \
     python3-texttable \
     python3-humanize \
     python3-strict-rfc3339 \
     python3-supervisor \
-    python3-toml \
     python3-diskcache \
     python3-requests-futures \
     python3-matplotlib \
@@ -339,7 +327,6 @@
     python3-xlrd \
     python3-xstatic \
     python3-tzlocal \
-    python3-wcwidth \
     python3-ntplib \
     python3-u-msgpack-python \
     python3-python-vlc \
@@ -383,7 +370,6 @@
     python3-requests-file \
     python3-requests-toolbelt \
     python3-ruamel-yaml \
-    python3-setuptools-scm \
     python3-socketio \
     python3-soupsieve \
     python3-textparser \
@@ -429,8 +415,6 @@
     python3-dill \
     python3-cerberus \
     python3-cvxopt \
-    python3-sortedcontainers \
-    python3-hypothesis \
     python3-jsonpath-rw \
 "
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.2.bb
index 6cd5a4c..c98e3ae 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.7.2.bb
@@ -13,8 +13,11 @@
     ${PYTHON_PN}-async-timeout \
     ${PYTHON_PN}-attrs \
     ${PYTHON_PN}-chardet \
+    ${PYTHON_PN}-html \
     ${PYTHON_PN}-idna-ssl \
+    ${PYTHON_PN}-json \
     ${PYTHON_PN}-misc \
     ${PYTHON_PN}-multidict \
+    ${PYTHON_PN}-netserver \
     ${PYTHON_PN}-yarl \
 "
diff --git a/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb b/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
index e3e6858..2fa5bc4 100644
--- a/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
+++ b/meta-openembedded/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
@@ -38,6 +38,7 @@
 RDEPENDS_packagegroup-meta-webserver-support = "\
     spawn-fcgi \
     fcgi \
+    fcgiwrap \
 "
 
 RDEPENDS_packagegroup-meta-webserver-webadmin = "\
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch b/meta-openembedded/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch
new file mode 100644
index 0000000..d05abd2
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch
@@ -0,0 +1,313 @@
+From 962e532099d10ee6ce5b4ce68537bc46595230c0 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <Joshua.Watt@garmin.com>
+Date: Tue, 24 Nov 2020 08:30:13 -0600
+Subject: [PATCH] Fix implicit fallthrough warning
+
+Fixes a warning about an implicit fall through in a case statement
+(-Werror=implicit-fallthrough) with newer versions of GCC
+
+Upstream-status: Submitted [https://github.com/gnosek/fcgiwrap/pull/54]
+Signed-off-by: Joshua Watt <Joshua.Watt@garmin.com>
+---
+ configure.ac                |   3 +
+ fcgiwrap.c                  |   7 ++
+ m4/ax_gcc_func_attribute.m4 | 242 ++++++++++++++++++++++++++++++++++++
+ 3 files changed, 252 insertions(+)
+ create mode 100644 m4/ax_gcc_func_attribute.m4
+
+diff --git a/configure.ac b/configure.ac
+index bb3674e..9ef517a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3,6 +3,7 @@
+ 
+ AC_PREREQ(2.61)
+ AC_INIT([fcgiwrap], [1.1.0], [root@localdomain.pl])
++AC_CONFIG_MACRO_DIRS([m4])
+ AM_CFLAGS="-std=gnu99 -Wall -Wextra -Werror -pedantic"
+ if test x"$CFLAGS" = x""; then
+     AM_CFLAGS="$AM_CFLAGS -O2 -g3"
+@@ -62,5 +63,7 @@ AC_FUNC_MALLOC
+ AC_CHECK_FUNCS([strchr strdup strrchr])
+ AC_CHECK_FUNCS([dup2 putenv select setenv strerror],, [AC_MSG_ERROR([seems as if your libraries don't provide an expected function])])
+ 
++AX_GCC_FUNC_ATTRIBUTE([fallthrough])
++
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index b44d8aa..a83726b 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -56,6 +56,12 @@
+ #define UNIX_PATH_MAX 108
+ #endif
+ 
++#ifdef HAVE_FUNC_ATTRIBUTE_FALLTHROUGH
++#define FALLTHROUGH __attribute__ ((fallthrough))
++#else
++#define FALLTHROUGH (void)
++#endif
++
+ extern char **environ;
+ static char * const * inherited_environ;
+ static const char **allowed_programs;
+@@ -580,6 +586,7 @@ static void handle_fcgi_request(void)
+ 			execl(filename, filename, (void *)NULL);
+ 			cgi_error("502 Bad Gateway", "Cannot execute script", filename);
+ 
++        FALLTHROUGH;
+ 		default: /* parent */
+ 			close(pipe_in[0]);
+ 			close(pipe_out[1]);
+diff --git a/m4/ax_gcc_func_attribute.m4 b/m4/ax_gcc_func_attribute.m4
+new file mode 100644
+index 0000000..da2b1ac
+--- /dev/null
++++ b/m4/ax_gcc_func_attribute.m4
+@@ -0,0 +1,242 @@
++# ===========================================================================
++#  https://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
++#
++# DESCRIPTION
++#
++#   This macro checks if the compiler supports one of GCC's function
++#   attributes; many other compilers also provide function attributes with
++#   the same syntax. Compiler warnings are used to detect supported
++#   attributes as unsupported ones are ignored by default so quieting
++#   warnings when using this macro will yield false positives.
++#
++#   The ATTRIBUTE parameter holds the name of the attribute to be checked.
++#
++#   If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
++#
++#   The macro caches its result in the ax_cv_have_func_attribute_<attribute>
++#   variable.
++#
++#   The macro currently supports the following function attributes:
++#
++#    alias
++#    aligned
++#    alloc_size
++#    always_inline
++#    artificial
++#    cold
++#    const
++#    constructor
++#    constructor_priority for constructor attribute with priority
++#    deprecated
++#    destructor
++#    dllexport
++#    dllimport
++#    error
++#    externally_visible
++#    fallthrough
++#    flatten
++#    format
++#    format_arg
++#    gnu_format
++#    gnu_inline
++#    hot
++#    ifunc
++#    leaf
++#    malloc
++#    noclone
++#    noinline
++#    nonnull
++#    noreturn
++#    nothrow
++#    optimize
++#    pure
++#    sentinel
++#    sentinel_position
++#    unused
++#    used
++#    visibility
++#    warning
++#    warn_unused_result
++#    weak
++#    weakref
++#
++#   Unsupported function attributes will be tested with a prototype
++#   returning an int and not accepting any arguments and the result of the
++#   check might be wrong or meaningless so use with care.
++#
++# LICENSE
++#
++#   Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved.  This file is offered as-is, without any
++#   warranty.
++
++#serial 12
++
++AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
++    AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
++
++    AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
++        AC_LINK_IFELSE([AC_LANG_PROGRAM([
++            m4_case([$1],
++                [alias], [
++                    int foo( void ) { return 0; }
++                    int bar( void ) __attribute__(($1("foo")));
++                ],
++                [aligned], [
++                    int foo( void ) __attribute__(($1(32)));
++                ],
++                [alloc_size], [
++                    void *foo(int a) __attribute__(($1(1)));
++                ],
++                [always_inline], [
++                    inline __attribute__(($1)) int foo( void ) { return 0; }
++                ],
++                [artificial], [
++                    inline __attribute__(($1)) int foo( void ) { return 0; }
++                ],
++                [cold], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [const], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [constructor_priority], [
++                    int foo( void ) __attribute__((__constructor__(65535/2)));
++                ],
++                [constructor], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [deprecated], [
++                    int foo( void ) __attribute__(($1("")));
++                ],
++                [destructor], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [dllexport], [
++                    __attribute__(($1)) int foo( void ) { return 0; }
++                ],
++                [dllimport], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [error], [
++                    int foo( void ) __attribute__(($1("")));
++                ],
++                [externally_visible], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [fallthrough], [
++                    int foo( void ) {switch (0) { case 1: __attribute__(($1)); case 2: break ; }};
++                ],
++                [flatten], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [format], [
++                    int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
++                ],
++                [gnu_format], [
++                    int foo(const char *p, ...) __attribute__((format(gnu_printf, 1, 2)));
++                ],
++                [format_arg], [
++                    char *foo(const char *p) __attribute__(($1(1)));
++                ],
++                [gnu_inline], [
++                    inline __attribute__(($1)) int foo( void ) { return 0; }
++                ],
++                [hot], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [ifunc], [
++                    int my_foo( void ) { return 0; }
++                    static int (*resolve_foo(void))(void) { return my_foo; }
++                    int foo( void ) __attribute__(($1("resolve_foo")));
++                ],
++                [leaf], [
++                    __attribute__(($1)) int foo( void ) { return 0; }
++                ],
++                [malloc], [
++                    void *foo( void ) __attribute__(($1));
++                ],
++                [noclone], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [noinline], [
++                    __attribute__(($1)) int foo( void ) { return 0; }
++                ],
++                [nonnull], [
++                    int foo(char *p) __attribute__(($1(1)));
++                ],
++                [noreturn], [
++                    void foo( void ) __attribute__(($1));
++                ],
++                [nothrow], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [optimize], [
++                    __attribute__(($1(3))) int foo( void ) { return 0; }
++                ],
++                [pure], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [sentinel], [
++                    int foo(void *p, ...) __attribute__(($1));
++                ],
++                [sentinel_position], [
++                    int foo(void *p, ...) __attribute__(($1(1)));
++                ],
++                [returns_nonnull], [
++                    void *foo( void ) __attribute__(($1));
++                ],
++                [unused], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [used], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [visibility], [
++                    int foo_def( void ) __attribute__(($1("default")));
++                    int foo_hid( void ) __attribute__(($1("hidden")));
++                    int foo_int( void ) __attribute__(($1("internal")));
++                    int foo_pro( void ) __attribute__(($1("protected")));
++                ],
++                [warning], [
++                    int foo( void ) __attribute__(($1("")));
++                ],
++                [warn_unused_result], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [weak], [
++                    int foo( void ) __attribute__(($1));
++                ],
++                [weakref], [
++                    static int foo( void ) { return 0; }
++                    static int bar( void ) __attribute__(($1("foo")));
++                ],
++                [
++                 m4_warn([syntax], [Unsupported attribute $1, the test may fail])
++                 int foo( void ) __attribute__(($1));
++                ]
++            )], [])
++            ],
++            dnl GCC doesn't exit with an error if an unknown attribute is
++            dnl provided but only outputs a warning, so accept the attribute
++            dnl only if no warning were issued.
++            [AS_IF([grep -- -Wattributes conftest.err],
++                [AS_VAR_SET([ac_var], [no])],
++                [AS_VAR_SET([ac_var], [yes])])],
++            [AS_VAR_SET([ac_var], [no])])
++    ])
++
++    AS_IF([test yes = AS_VAR_GET([ac_var])],
++        [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FUNC_ATTRIBUTE_$1), 1,
++            [Define to 1 if the system has the `$1' function attribute])], [])
++
++    AS_VAR_POPDEF([ac_var])
++])
+-- 
+2.29.2
+
diff --git a/meta-openembedded/meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb b/meta-openembedded/meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb
new file mode 100644
index 0000000..a9a8ce0
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "FastCGI wrapper for CGI scripts"
+DESCRIPTION = "FcgiWrap is a simple server for running CGI applications over FastCGI. Fcgiwrap can be used together with Nginx to serve CGI or Perl scripts"
+HOMEPAGE = "https://github.com/gnosek/fcgiwrap"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a95d02d614a3a0232d4e6e51b7963c5b"
+
+DEPENDS = "fcgi"
+
+SRC_URI = "git://github.com/gnosek/fcgiwrap.git;protocol=https;branch=${BRANCH} \
+           file://0001-Fix-implicit-fallthrough-warning.patch \
+           "
+BRANCH = "master"
+SRCREV = "99c942c90063c73734e56bacaa65f947772d9186"
+
+S = "${WORKDIR}/git"
+CFLAGS =+ "-I${B}"
+EXTRA_OEMAKE = "VPATH=${S}"
+
+inherit autotools pkgconfig
+
+do_install() {
+    install -Dm 755 ${B}/fcgiwrap ${D}${sbindir}/fcgiwrap
+}