meta-openembedded: subtree update:ae39f2e711..bccd3277e4

Alejandro Enedino Hernandez Samaniego (2):
      emacs: Create a new recipe for emacs
      weechat: Upgrade to 2.9

Andreas Müller (3):
      Initial add source-code-pro-fonts 2.030_1.050
      gedit: add source-code-pro-fonts to RRECOMMENDS
      geany: add source-code-pro-fonts to RRECOMMENDS

Andrej Valek (1):
      squid: upgrade 4.12 -> 4.13

Armin Kuster (3):
      log4cplus: pkg moved to core
      kea: pkg moved to core
      dhcpcd: pkg moved to core

Arthur She (1):
      xmlrpc-c: fix Makefile macro error

Arturo Buzarra (1):
      byacc: add nativesdk support

Bartosz Golaszewski (1):
      libgpiod: update v1.4.3 -> v1.4.4

Bjarne Michelsen (1):
      asio: extend recipe to add native support

Diego Rondini (4):
      libeigen: update SRC_URI to download from gitlab
      gvfs: adjust fuse packageconfig to fuse3
      libeigen: update SRC_URI to use gitlab git
      hplip: use libexecdir

Fabio Berton (2):
      libqmi: Update 1.26.0 -> 1.26.4
      modemmanager: Update 1.12.12 -> 1.14.2

Gianfranco Costamagna (3):
      dlt-daemon: superseed upstream pr #238 patch with pr #245 due to unexpected behaviour
      brotli: update to 1.0.9
      brotli: set upstream-status for the patch backported from upstream

Haiqing Bai (1):
      rsyslog: fix wrong option of PACKAGECONFIG[valgrind]

Hongxu Jia (1):
      python3-texttable: add recipe

Jack Mitchell (1):
      meta-networking: dhcpcd: backport ALIGN compile error fix

Jens Rehsack (1):
      bearssl: fix missing install

Jose Dapena Paz (1):
      xmlsec1: do not use system libraries for non nss

Jugurtha BELKALEM (1):
      recipe/ettercap : new ettercap recipe

Khem Raj (67):
      valijson: Move it to networking-layer under BBFILES_DYNAMIC
      linuxptp: Fix cross build
      kernel-selftest: Tests in 5.8 depend on libhugetlbfs.h
      wireguard-module: Exlude from world builds
      Revert "iwd: Module load dir should be relative to root_dir"
      vboxguestdrivers: Fix build with kernel 5.8
      kernel-selftest: Disable vm tests for mips/arm
      vulkan-cts: Update to 1.2.3.2
      nss: Avoid converting enum to void*
      nss: Disable Werror across all recipe types
      nss: Upgrade to 3.56
      mini-iconv: Remove
      wvstreams: Update SRC_URI to a fetchable location
      wvdial: Update SRC_URI to an accessible location
      packagegroup-meta-oe: Overhaul so it can build meta-oe-image
      mime-support: Use update-alternatives
      canutils: Use update-alternatives
      libusbgx: Use update-alternatives
      ttf-liberation-sans-narrow: Do not install normal liberation fonts
      mutter: Add a comment to remove pipewire-0.2 dependency with 3.36
      sblim-sfcb: Fix target postinst
      hexedit: Define update alternatives
      lmbench: Use update alternatives for stream
      uml-utilities: Use update alternatives for tunctl
      imagemagick: Create symlinks for magick-script
      sharutils: Use update alternatives for uudecode/uuencode
      layer.conf: fixes icon-theme signature changes
      layer.conf: Fix for signature change for allarch icon themes
      properties-cpp: Add recipe
      packagegroup-meta-filesystems: Update to add new recipes
      packagegroup-meta-webserver: Update to include new recipes
      monkey: Remove /var/run
      monkey: Correct the install path in init services
      packagegroup-meta-oe: Exclude from world builds
      networkmanager: Depend on dhcpcd
      packagegroup-meta-networking: Add new packages
      bearssl: fix GNU_HASH link error
      autossh: Depend on ssh instead of hardcoding openssh
      quagga,pimd: Use update-alternatives for pimd
      netkit-rpc: Use update alternatives for rpcinfo
      ssmtp: Use update alternatives for conflicts with esmtp
      netkit-rwho: Use update-alternatives for tftp
      netkit-ftp: Use update-alternatives for ftp
      netkit-rwho: Convert to ontarget postinst
      schroedinger: Update SRC_URI
      packagegroup-meta-multimedia: Add new recipes
      mycroft: rdep on procps
      imapfilter: Fix linker flags
      toybox: Add packageconfigs for iconv and getconf
      tmux: Add -p option to mkdir
      packagegroup-meta-networking: Remove dhcpcd and kea
      packagegroup-meta-oe: Remove log4cplus
      packagegroup-meta-multimedia: Remove projucer on musl
      packagegroup-meta-perl: Update to represent latest recipes
      po4a: Switch to github for SRC_URI as alioth one seems to be gone
      libdata-hexdump-perl: Use update alternatives for hexdump
      meta-perl-image: Add packagegroup-meta-perl-extended
      meta-perl-ptest-image: Depend on ptest DISTRO_FEATURE
      iwd: Upgrade to 1.9
      packagegroup-meta-python: Add new packages
      meta-python-image,meta-python-ptest-image: Use python3 packagegroups
      android-tools: Support libselinux to build with musl which now has gettid
      packagegroup-meta-oe.bb: Add cukinia to test packagegroups
      packagegroup-meta-oe: Add source-code-pro-fonts
      mongodb: Pass OBJCOPY to scons so it does not use it from host
      mongodb: Fix libunwind build with -fno-common
      mongodb: Fix i386 builds for non-glibc systems

Leon Anavi (134):
      python3-pywbem: Upgrade 0.17.4 -> 1.0.2
      python3-pydicti: Add recipe
      python3-yamlloader: Add recipe
      python3-tabulate: Add recipe
      python3-asciitree: Add recipe
      python3-custom-inherit: Add recipe
      python3-nocasedict: Add recipe
      python3-nocaselist: Add recipe
      python3-click-repl: Add recipe
      python3-click-spinner: Add recipe
      python3-pywbemtools: Add recipe
      python3-diskcache: Upgrade 4.1.0 -> 5.0.1
      python3-langtable: Upgrade 0.0.51 -> 0.0.52
      python3-pint: Upgrade 0.14 -> 0.15
      python3-networkx: Upgrade 2.4 -> 2.5
      python3-attrs: Upgrade 19.3.0 -> 20.1.0
      python3-pychromecast: Upgrade 7.2.0 -> 7.2.1
      python3-dominate: Upgrade 2.5.1 -> 2.5.2
      python3-pymisp: Upgrade 2.4.128 -> 2.4.130
      python3-inflection: Upgrade 0.5.0 -> 0.5.1
      python3-typing-extensions: Upgrade 3.7.4.2 -> 3.7.4.3
      python3-pandas: Upgrade 1.1.0 -> 1.1.1
      python3-msm: Upgrade 0.8.7 -> 0.8.8
      lshw: Upgrade 2.18 -> 2.19
      mercurial: Upgrade 5.4 -> 5.5
      doxygen: Upgrade 1.8.17 -> 1.8.20
      python3-bitarray: Upgrade 1.5.2 -> 1.5.3
      python3-cryptography-vectors: Upgrade 2.9.2 -> 3.0
      python3-openpyxl: Upgrade 3.0.4 -> 3.0.5
      python3-cmd2: Upgrade 1.3.3 -> 1.3.4
      python3-sentry-sdk: Upgrade 0.16.5 -> 0.17.0
      python3-flask: Consolidate in a single file
      python3-flask: Upgrade 1.1.1 -> 1.1.2
      python3-diskcache: Upgrade 5.0.1 -> 5.0.2
      python3-cmd2: Upgrade 1.3.4 -> 1.3.5
      python3-flask-wtf: Consolidate in a single file
      python3-flask-wtf: Upgrade 0.14.2 -> 0.14.3
      python3-flask-socketio: Consolidate in a single file
      python3-flask-socketio: Upgrade 4.2.1 -> 4.3.1
      python3-google-api-python-client: Upgrade 1.10.0 -> 1.10.1
      python3-cryptography: Upgrade 3.0 -> 3.1
      python3-twitter: Upgrade 3.8.0 -> 3.9.0
      python3-ntplib: Upgrade 0.3.3 -> 0.3.4
      python3-flask-babel: Upgrade 1.0.0 -> 2.0.0
      python3-flask-migrate: Consolidate in a single file
      python3-flask-migrate: Upgrade 2.5.2 -> 2.5.3
      python3-flask-restful: Consolidate in a single file
      python3-flask-restful: Upgrade 0.3.7 -> 0.3.8
      python3-flask-sqlalchemy: Consolidate in a single file
      python3-flask-sqlalchemy: Upgrade 2.4.1 -> 2.4.4
      php: Upgrade 7.4.4 -> 7.4.9
      python3-ecdsa: Upgrade 0.15 -> 0.16.0
      python3-luma-core: Upgrade 1.15.0 -> 1.16.0
      python3-cryptography-vectors: Upgrade 3.0 -> 3.1
      python3-google-api-python-client: Upgrade 1.10.1 -> 1.11.0
      python3-flask-user: Consolidate in a single file
      python3-cmd2: Upgrade 1.3.5 -> 1.3.8
      python3-sh: Upgrade 1.13.1 -> 1.14.0
      python3-paramiko: Upgrade 2.7.1 - 2.7.2
      python3-parse: Upgrade 1.16.0 -> 1.17.0
      python3-prompt-toolkit: Upgrade 3.0.6 -> 3.0.7
      python3-more-itertools: Upgrade 8.4.0 -> 8.5.0
      python3-ipython: Upgrade 7.17.0 -> 7.18.1
      python3-hpack: Consolidate in a single file
      python3-hpack: Upgrade 3.0.0 -> 4.0.0
      python3-sentry-sdk: Upgrade 0.17.0 -> 0.17.1
      python3-luma-core: Upgrade 1.16.0 -> 1.16.1
      python3-traitlets: Upgrade 4.3.3 -> 5.0.0
      python3-flask-nav: Consolidate in a single file
      python3-flask-mail: Consolidate in a single file
      python3-flask-pymongo: Consolidate in a single file
      python3-pillow: Upgrade 6.2.1 -> 7.2.0
      znc: Upgrade 1.7.5 -> 1.8.1
      mosquitto: Upgrade 1.6.11 -> 1.6.12
      fping: Upgrade 4.4 -> 5.0
      nano: Upgrade 5.1 -> 5.2
      hwdata: Upgrade 0.336 -> 0.339
      xscreensaver: Add HOMEPAGE
      python3-meh: Upgrade 0.48 -> 0.49
      python3-stevedore: Upgrade 3.2.0 -> 3.2.1
      python3-robotframework: Upgrade 3.2.1 -> 3.2.2
      python3-sentry-sdk: Upgrade 0.17.1 -> 0.17.2
      python3-pycurl: Upgrade 7.43.0.5 -> 7.43.0.6
      python3-pyzmq: Upgrade 17.1.0 -> 19.0.2
      python3-mccabe: Upgrade 0.2.1 -> 0.6.1
      python3-nmap: Upgrade 1.4.7 -> 1.4.8
      python3-absl: Upgrade 0.9.0 -> 0.10.0
      python3-systemd: Consolidate in a single file
      python3-gevent: Consolidate in a single file
      python3-gevent: Upgrade 1.4.0 -> 20.6.2
      python3-ruamel-yaml: Upgrade 0.16.10 -> 0.16.11
      python3-cmd2: Upgrade 1.3.8 -> 1.3.9
      python3-traitlets: 5.0.0 -> 5.0.3
      python3-priority: Consolidate in a single file
      python3-hyperframe: Consolidate in a single file
      python3-mprpc: Consolidate in a single file
      python3-gsocketpool: Consolidate in a single file
      gyp: Consolidate in a single file
      gyp: Upgrade to latest version
      python3-fann2: Consolidate in a single file
      python3-isort: Upgrade 5.4.2 -> 5.5.0
      python3-sentry-sdk: Upgrade 0.17.2 -> 0.17.3
      python3-hyperframe: Upgrade 5.2.0 -> 6.0.0
      python3-traitlets: Upgrade 5.0.3 -> 5.0.4
      python3-texttable: Upgrade 1.6.2 -> 1.6.3
      python3-iso8601: Upgrade 0.1.12 -> 0.1.13
      python3-dbus-next: Upgrade 0.1.3 -> 0.1.4
      python3-ujson: Upgrade 3.1.0 -> 3.2.0
      python3-trafaret: Upgrade 2.0.2 -> 2.1.0
      python3-tqdm: Upgrade 4.48.2 -> 4.49.0
      python3-isort: Upgrade 5.5.0 -> 5.5.2
      python3-coverage: Upgrade 5.2.1 -> 5.3
      python3-diskcache: Upgrade 5.0.2 -> 5.0.3
      python3-haversine: Upgrade 2.2.0 -> 2.3.0
      python3-pymysql: Upgrade 0.10.0 -> 0.10.1
      python3-alembic: Upgrade 1.4.2 -> 1.4.3
      python3-nocasedict: Upgrade 0.5.0 -> 1.0.0
      python3-pyroute2: Upgrade 0.5.13 -> 0.5.14
      python3-pyusb: Upgrade 1.0.2 -> 1.1.0
      python3-pandas: Upgrade 1.1.1 -> 1.1.2
      python3-pint: Upgrade 0.15 -> 0.16
      python3-parse: Upgrade 1.17.0 -> 1.18.0
      python3-cffi: Upgrade 1.14.2 -> 1.14.3
      python3-google-api-python-client: Upgrade 1.11.0 -> 1.12.1
      python3-sentry-sdk: Upgrade 0.17.3 -> 0.17.5
      python3-attrs: Upgrade 20.1.0 -> 20.2.0
      python3-nocaselist: Upgrade 1.0.1 -> 1.0.2
      python3-pymisp: Upgrade 2.4.130 -> 2.4.131
      python3-stevedore: Upgrade 3.2.1 -> 3.2.2
      python3-matplotlib: Upgrade 3.3.1 -> 3.3.2
      python3-pychromecast: Upgrade 7.2.1 -> 7.3.0
      python3-pyrsistent: Upgrade 0.16.0 -> 0.17.3
      python3-ruamel-yaml: Upgrade 0.16.11 -> 0.16.12
      python3-msk: Upgrade 0.3.15 -> 0.3.16

Madhavan Krishnan (1):
      libcamera: Bumped to latest revision and added pkgconfig to enable gstreamer

Marc (1):
      openocd: Update to latest git version

Marek Vasut (1):
      freerdp: Add missing libxkbcommon WL dependency

Martin Jansa (5):
      fbida: require opengl in DISTRO_FEATURES
      nss: fix postinst in do_rootfs for target
      nss: remove signlibs.sh
      st: add x11 to REQUIRED_DISTRO_FEATURES to suck less
      st: fix indentation

Michael Fitz-Payne (1):
      python3-greenstalk: add recipe for greenstalk python package.

Michael Vetter (2):
      jasper: Use new repo URL
      README: Use quotation marks for subject prefix

Mikko Rapeli (4):
      nss: fix postinst script for nativesdk build
      mdns: update to version 1096.40.7
      mdns: set CVE_PRODUCT to "apple:mdnsresponder"
      mdns: add BSD-3-Clause to LICENSE

Mingli Yu (2):
      mariadb: package executables named with mariadb
      opencv: improve reproducibility

Ola X Nilsson (1):
      syslog-ng: Drop obsolete variable ONLINE_PACKAGE_MANAGEMENT

Oleksandr Kravchuk (1):
      tesseract: update to 4.1.1

Ovidiu Panait (1):
      net-snmp: upgrade 5.8 -> 5.9

Richard Leitner (1):
      liburing: add v0.7

Robert Joslyn (3):
      postgresql: Update to 12.4
      htop: Update to 3.0.1
      consolation: Add recipe

Sakib Sajal (1):
      apache2: upgrade v2.4.43 -> v2.4.46

Slater, Joseph (2):
      openjpeg: fix CVE-2020-15389
      luajit: advance SRCREV to fix two CVE's

Stanislav Angelovic (1):
      Bump sdbus-c++ version to v0.8.3

Trevor Gamblin (3):
      packagegroup-meta-python: fix PACKAGES and default ptest recipe name
      python3-django: upgrade 2.2.13 -> 2.2.16
      python3-django: add recipe for 3.1.1

Vincent Prince (1):
      mongodb: bump to r4.4.1 version

Wenlin Kang (2):
      lua: fix CVE-2020-15945
      lua: fix CVE-2020-24371

Yann Dirson (5):
      New terminal emulator: st 0.8.4
      libcec: workaround wrong choice of PYTHON_PKG_DIR when building on Debian
      libcec: build with Linux CEC API
      libcec: rename libcec-tools to libcec-examples
      libcec: split the python example into a separate package

Zang Ruochen (38):
      lftp: upgrade 4.9.1 -> 4.9.2
      wireshark: upgrade 3.2.5 -> 3.2.6
      leptonica: upgrade 1.79.0 -> 1.80.0
      links: upgrade 2.20.2 -> 2.21
      nano: upgrade 5.0 -> 5.1
      nlohmann-json: upgrade 3.9.0 -> 3.9.1
      openldap: upgrade 2.4.50 -> 2.4.51
      protobuf: upgrade 3.12.3 -> 3.13.0
      sanlock: upgrade 3.8.1 -> 3.8.2
      libnet-dns-perl: upgrade 1.25 -> 1.26
      libidn: upgrade 1.35 -> 1.36
      satyr: upgrade 0.30 -> 0.31
      spitools: upgrade 0.8.4 -> 0.8.5
      fio: upgrade 3.21 -> 3.22
      iperf3: upgrade 3.7 -> 3.9
      paho-mqtt-c: upgrade 1.3.4 -> 1.3.5
      purple-skypeweb: upgrade 1.6 -> 1.7
      libdbd-sqlite-perl: upgrade 1.64 -> 1.66
      libencode-perl: upgrade 3.06 -> 3.07
      dash: upgrade 0.5.11.1 -> 0.5.11.2
      fuse3: upgrade 3.9.2 -> 3.9.3
      gperftools: upgrade 2.7.90 -> 2.8
      xfsprogs: upgrade 5.7.0 -> 5.8.0
      cifs-utils: upgrade 6.10 -> 6.11
      libdnet: upgrade 1.12 -> 1.14
      asio: upgrade 1.16.1 -> 1.18.0
      collectd: upgrade 5.11.0 -> 5.12.0
      cryptsetup: upgrade 2.3.3 -> 2.3.4
      gsoap: upgrade 2.0.105 -> 2.0.106
      jasper: upgrade 2.0.19 -> 2.0.20
      lcms: upgrade 2.9 -> 2.11
      libhugetlbfs: upgrade 2.22 -> 2.23
      ostree: upgrade 2020.5 -> 2020.6
      poppler: upgrade 20.08.0 -> 20.09.0
      redis: upgrade 6.0.6 -> 6.0.7
      spdlog: upgrade 1.7.0 -> 1.8.0
      zeromq: upgrade 4.3.2 -> 4.3.3
      python3-test-generator: Enable ptest

leckijakub (1):
      cukinia: new package

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I8382b605a3c059a037b8f4db53608f505da642ed
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
index 8524517..87771cb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
@@ -29,24 +29,21 @@
 
 --- a/src/procattr.c
 +++ b/src/procattr.c
-@@ -8,7 +8,19 @@
+@@ -8,12 +8,16 @@
  #include "selinux_internal.h"
  #include "policy.h"
  
 -#ifndef __BIONIC__
 +/* Bionic and glibc >= 2.30 declare gettid() system call wrapper in unistd.h and
 + * has a definition for it */
-+#ifdef __BIONIC__
-+  #define OVERRIDE_GETTID 0
-+#elif !defined(__GLIBC_PREREQ)
-+  #define OVERRIDE_GETTID 1
-+#elif !__GLIBC_PREREQ(2,29)
-+  #define OVERRIDE_GETTID 1
-+#else
-+  #define OVERRIDE_GETTID 0
-+#endif
-+
-+#if OVERRIDE_GETTID
++#if defined(__GLIBC_)
++#if !__GLIBC_PREREQ(2,30)
  static pid_t gettid(void)
  {
  	return syscall(__NR_gettid);
+ }
+ #endif
++#endif
+ 
+ static int getprocattrcon(char ** context,
+ 			  pid_t pid, const char *attr)
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
index a9650c2..53f8888 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
@@ -1,5 +1,10 @@
-It fails to compile doxygen-native when /usr/bin/python is a link to python3 on
-build host:
+From aa833cf56c5cc2e87a1d91881eb2286beb34e417 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Wed, 26 Aug 2020 10:52:10 +0300
+Subject: [PATCH] doxygen: Fix Python issues for doxygen-native
+
+It fails to compile doxygen-native when /usr/bin/python is a link
+to python3 on build host:
 
 | Failed to import the site module
 | Traceback (most recent call last):
@@ -21,21 +26,31 @@
 |     _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
 | ModuleNotFoundError: No module named '_sysconfigdata'
 
-Replace find_package PythonInterp with Python3 to fix this issue that
-it uses python3 from python3-native. And it also replaces the result
-variable PYTHON_EXECUTABLE with Python3_EXECUTABLE.
+Replace find_package PythonInterp with Python3 to fix this issue
+that it uses python3 from python3-native. And it also replaces the
+result variable PYTHON_EXECUTABLE with Python3_EXECUTABLE.
 
 This patch is only needded by doxygen-native.
 
 Upstream-Status: Inappropriate[oe specific]
 
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Co-Authored-By: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 ---
+ CMakeLists.txt                  |  2 +-
+ addon/doxywizard/CMakeLists.txt |  6 +++---
+ doc/CMakeLists.txt              |  6 +++---
+ examples/CMakeLists.txt         |  4 ++--
+ libmscgen/CMakeLists.txt        |  2 +-
+ src/CMakeLists.txt              | 12 ++++++------
+ testing/CMakeLists.txt          |  4 ++--
+ 7 files changed, 18 insertions(+), 18 deletions(-)
+
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 969ae58..604400f 100644
+index 35e6a0c2..9aaebbdf 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -93,7 +93,7 @@ else ()
+@@ -100,7 +100,7 @@ else ()
  endif ()
  
  find_program(DOT NAMES dot)
@@ -45,7 +60,7 @@
  find_package(BISON REQUIRED)
  if (BISON_VERSION VERSION_LESS 2.7)
 diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt
-index 6aacd8b..fa197e9 100644
+index 6aacd8b6..fa197e9e 100644
 --- a/addon/doxywizard/CMakeLists.txt
 +++ b/addon/doxywizard/CMakeLists.txt
 @@ -58,7 +58,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA
@@ -76,7 +91,7 @@
  	OUTPUT  ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
      )
 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
-index 032c16a..332f1b2 100644
+index a094c570..8a757c20 100644
 --- a/doc/CMakeLists.txt
 +++ b/doc/CMakeLists.txt
 @@ -132,7 +132,7 @@ configure_file(${CMAKE_SOURCE_DIR}/doc/doxyindexer.1      ${PROJECT_BINARY_DIR}/
@@ -85,7 +100,7 @@
  add_custom_command(
 -        COMMAND ${PYTHON_EXECUTABLE} translator.py ${CMAKE_SOURCE_DIR}
 +        COMMAND ${Python3_EXECUTABLE} translator.py ${CMAKE_SOURCE_DIR}
-         DEPENDS ${PROJECT_BINARY_DIR}/doc/maintainers.txt ${PROJECT_BINARY_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py
+         DEPENDS ${CMAKE_SOURCE_DIR}/doc/maintainers.txt ${CMAKE_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES}
          OUTPUT language.doc
          WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc
 @@ -141,7 +141,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1)
@@ -107,235 +122,19 @@
      COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm
          DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc
 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 967f3d4..a8d1aad 100644
+index 3f1c79b8..d5866ee1 100644
 --- a/examples/CMakeLists.txt
 +++ b/examples/CMakeLists.txt
-@@ -52,196 +52,196 @@ add_custom_target(examples
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen class.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
- 	DEPENDS doxygen class.h class.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/class/html/index.html ${PROJECT_BINARY_DIR}/html/examples/class/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen define.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
- 	DEPENDS doxygen define.h define.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/define/html/index.html ${PROJECT_BINARY_DIR}/html/examples/define/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen enum.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
- 	DEPENDS doxygen enum.h enum.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/enum/html/index.html ${PROJECT_BINARY_DIR}/html/examples/enum/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen file.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
- 	DEPENDS doxygen file.h file.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/file/html/index.html ${PROJECT_BINARY_DIR}/html/examples/file/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen func.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
- 	DEPENDS doxygen func.h func.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/func/html/index.html ${PROJECT_BINARY_DIR}/html/examples/func/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen javadoc-banner.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
- 	DEPENDS doxygen javadoc-banner.h javadoc-banner.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/html/index.html ${PROJECT_BINARY_DIR}/html/examples/javadoc-banner/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen page.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
- 	DEPENDS doxygen page.doc page.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/page/html/index.html ${PROJECT_BINARY_DIR}/html/examples/page/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen relates.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
- 	DEPENDS doxygen relates.cpp relates.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/relates/html/index.html ${PROJECT_BINARY_DIR}/html/examples/relates/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen author.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
- 	DEPENDS doxygen author.cpp author.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/author/html/index.html ${PROJECT_BINARY_DIR}/html/examples/author/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen par.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
- 	DEPENDS doxygen par.cpp par.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/par/html/index.html ${PROJECT_BINARY_DIR}/html/examples/par/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen overload.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
- 	DEPENDS doxygen overload.cpp overload.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/overload/html/index.html ${PROJECT_BINARY_DIR}/html/examples/overload/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen example.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
- 	DEPENDS doxygen example.cpp example_test.cpp example.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/example/html/index.html ${PROJECT_BINARY_DIR}/html/examples/example/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen include.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
- 	DEPENDS doxygen include.cpp include_test.cpp include.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/include/html/index.html ${PROJECT_BINARY_DIR}/html/examples/include/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen qtstyle.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
- 	DEPENDS doxygen qtstyle.cpp qtstyle.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/qtstyle/html/index.html ${PROJECT_BINARY_DIR}/html/examples/qtstyle/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen jdstyle.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
- 	DEPENDS doxygen jdstyle.cpp jdstyle.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/jdstyle/html/index.html ${PROJECT_BINARY_DIR}/html/examples/jdstyle/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen structcmd.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
- 	DEPENDS doxygen structcmd.h structcmd.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/structcmd/html/index.html ${PROJECT_BINARY_DIR}/html/examples/structcmd/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen autolink.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
- 	DEPENDS doxygen autolink.cpp autolink.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/autolink/html/index.html ${PROJECT_BINARY_DIR}/html/examples/autolink/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen tag.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
- 	DEPENDS doxygen tag.cpp tag.cfg ${PROJECT_BINARY_DIR}/html/examples/example/html/index.html ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/tag/html/index.html ${PROJECT_BINARY_DIR}/html/examples/tag/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen restypedef.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
- 	DEPENDS doxygen restypedef.cpp restypedef.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/restypedef/html/index.html ${PROJECT_BINARY_DIR}/html/examples/restypedef/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen afterdoc.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
- 	DEPENDS doxygen afterdoc.h afterdoc.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/afterdoc/html/index.html ${PROJECT_BINARY_DIR}/html/examples/afterdoc/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen templ.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
- 	DEPENDS doxygen templ.cpp templ.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/template/html/index.html ${PROJECT_BINARY_DIR}/html/examples/template/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen group.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
- 	DEPENDS doxygen group.cpp group.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/group/html/index.html ${PROJECT_BINARY_DIR}/html/examples/group/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen memgrp.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
- 	DEPENDS doxygen memgrp.cpp memgrp.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/memgrp/html/index.html ${PROJECT_BINARY_DIR}/html/examples/memgrp/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen pyexample.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
- 	DEPENDS doxygen pyexample.py pyexample.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/pyexample/html/index.html ${PROJECT_BINARY_DIR}/html/examples/pyexample/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen tclexample.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
- 	DEPENDS doxygen tclexample.tcl tclexample.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/tclexample/html/index.html ${PROJECT_BINARY_DIR}/html/examples/tclexample/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen mux.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
- 	DEPENDS doxygen mux.vhdl mux.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/mux/html/index.html ${PROJECT_BINARY_DIR}/html/examples/mux/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen manual.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
- 	DEPENDS doxygen manual.c manual.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/manual/html/index.html ${PROJECT_BINARY_DIR}/html/examples/manual/latex/refman_doc.tex
- )
- 
- add_custom_command(
- 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen docstring.cfg
--        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
-+        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
- 	DEPENDS doxygen docstring.py docstring.cfg ${TOP}/examples/strip_example.py
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/docstring/html/index.html ${PROJECT_BINARY_DIR}/html/examples/docstring/latex/refman_doc.tex
- )
-@@ -249,7 +249,7 @@ add_custom_command(
+@@ -51,7 +51,7 @@ foreach (f_inp  ${BASIC_EXAMPLES})
+         string(REGEX REPLACE ":.*" "" f ${f_inp})
+     add_custom_command(
+ 	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
+-        COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman_doc.tex
++        COMMAND ${Python3_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman_doc.tex
+ 	DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py
+ 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/html/examples/${f}/latex/refman_doc.tex
+     )
+@@ -68,7 +68,7 @@ add_custom_target(examples
  if (DOT)
    add_custom_command(
  	COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
@@ -345,7 +144,7 @@
  	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex
    )
 diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt
-index 079fcfc..e6d86f6 100644
+index 079fcfc8..e6d86f61 100644
 --- a/libmscgen/CMakeLists.txt
 +++ b/libmscgen/CMakeLists.txt
 @@ -7,7 +7,7 @@ include_directories(
@@ -358,76 +157,84 @@
          OUTPUT  ${GENERATED_SRC}/${lex_file}.l.h
      )
 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 23460d0..58f679a 100644
+index cb289116..356741ff 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -35,7 +35,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
+@@ -39,7 +39,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
  
  # configvalues.h
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configvalues.h
  )
-@@ -47,7 +47,7 @@ add_custom_target(
+@@ -51,7 +51,7 @@ add_custom_target(
  
  # configvalues.cpp
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configvalues.cpp
  )
-@@ -55,7 +55,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
+@@ -59,7 +59,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
  
  # configoptions.cpp
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -cpp ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configoptions.cpp
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
      OUTPUT ${GENERATED_SRC}/configoptions.cpp
  )
-@@ -86,7 +86,7 @@ file(GLOB RESOURCES ${CMAKE_SOURCE_DIR}/templates/*/*)
+@@ -94,7 +94,7 @@ endif()
  # resources.cpp
  add_custom_command(
      COMMENT  "Generating ${GENERATED_SRC}/resources.cpp"
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
-     DEPENDS ${RESOURCES}
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${CMAKE_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
+     DEPENDS ${RESOURCES} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py
      OUTPUT ${GENERATED_SRC}/resources.cpp
  )
-@@ -94,7 +94,7 @@ set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED
+@@ -102,7 +102,7 @@ set_source_files_properties(${GENERATED_SRC}/resources.cpp PROPERTIES GENERATED
  
  # layout_default.xml
  add_custom_command(
--    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
-+    COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/to_c_cmd.py < ${CMAKE_SOURCE_DIR}/src/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
-     DEPENDS ${CMAKE_SOURCE_DIR}/src/layout_default.xml
+-    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/to_c_cmd.py < ${CMAKE_CURRENT_LIST_DIR}/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
++    COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/to_c_cmd.py < ${CMAKE_CURRENT_LIST_DIR}/layout_default.xml > ${GENERATED_SRC}/layout_default.xml.h
+     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/layout_default.xml ${CMAKE_CURRENT_LIST_DIR}/to_c_cmd.py
      OUTPUT  ${GENERATED_SRC}/layout_default.xml.h
  )
-@@ -124,7 +124,7 @@ foreach(lex_file ${LEX_FILES})
+@@ -131,7 +131,7 @@ foreach(lex_file ${LEX_FILES})
      set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files")
      set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files")
      add_custom_command(
--        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
-+        COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
-         DEPENDS ${CMAKE_SOURCE_DIR}/src/scan_states.py ${CMAKE_SOURCE_DIR}/src/${lex_file}.l
+-        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
++        COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
+         DEPENDS ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l
          OUTPUT  ${GENERATED_SRC}/${lex_file}.l.h
      )
 diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
-index 40cb40b..a301acd 100644
+index b354e78f..28d45e11 100644
 --- a/testing/CMakeLists.txt
 +++ b/testing/CMakeLists.txt
-@@ -1,9 +1,9 @@
+@@ -1,7 +1,7 @@
+ # run all tests sequentially (keep for backward compatibility)
  add_custom_target(tests
-          COMMENT "Running doxygen tests..."
--	 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
-+	 COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
-          DEPENDS doxygen
- )
- add_test(NAME suite
--	COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
-+	COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ 	COMMENT "Running doxygen tests..."
+-	COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++	COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ 	DEPENDS doxygen
  )
  
+@@ -19,6 +19,6 @@ foreach(TEST_FILE ${TEST_FILES})
+ 	string(REGEX REPLACE "^.*/([0-9][0-9][0-9]*).*$" "\\1" TEST_ID "${TEST_FILE}")
+ 	# add a test target for each test
+ 	add_test(NAME ${TEST_NAME}
+-		 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++		 COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${CMAKE_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ 	)
+ endforeach()
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.20.bb
similarity index 79%
rename from meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
rename to meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.20.bb
index 45de718..d4ac3b7 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.17.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.20.bb
@@ -10,8 +10,8 @@
            file://0001-build-don-t-look-for-Iconv.patch \
 "
 SRC_URI_append_class-native = " file://doxygen-native-only-check-python3.patch"
-SRC_URI[md5sum] = "7997a15c73a8bd6d003eaba5c2ee2b47"
-SRC_URI[sha256sum] = "2cba988af2d495541cbbe5541b3bee0ee11144dcb23a81eada19f5501fd8b599"
+SRC_URI[md5sum] = "8729936a843232a66fe970ef65f3c3e4"
+SRC_URI[sha256sum] = "e0db6979286fd7ccd3a99af9f97397f2bae50532e4ecb312aa18862f8401ddec"
 
 inherit cmake python3native
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
index 8282091..039999f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.36.bb
@@ -16,3 +16,5 @@
 FILES_${PN} += "${datadir}/icons"
 
 EXTRA_OECONF = "--disable-html-docs"
+
+RRECOMMENDS_${PN} += "source-code-pro-fonts"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.5.bb b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.5.bb
deleted file mode 100644
index 967ac76..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "log4cplus provides a simple C++ logging API for log management"
-SECTION = "libs"
-HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
-BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
-
-LICENSE = "Apache-2.0 & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \
-          "
-SRC_URI[md5sum] = "71dd956bf686195127559671f1426cff"
-SRC_URI[sha256sum] = "c07115c23219390633798def30b7b51a0f79fdeb857e4b49632f17746d0ceb97"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
-UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch
new file mode 100644
index 0000000..fa90aa1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch
@@ -0,0 +1,125 @@
+From a5a4bb4254b2109bd3e272174946f0bb36ee99a8 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Tue, 25 Aug 2020 11:45:45 +0300
+Subject: [PATCH] Fix musl build
+
+Apply the following fixes for musl:
+
+- Fix basename() is in libgen.h
+- Fix wrong usage of LONG_BIT
+
+Same fixes have been submitted to the upstream of lshw by Sergio
+Prado but they have not been merged yet.
+
+Upstream-Status: Submitted
+
+Co-Authored-By: Sergio Prado <sergio.prado@e-labworks.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ src/core/abi.cc   |  4 +---
+ src/core/sysfs.cc | 19 ++++++++++---------
+ 2 files changed, 11 insertions(+), 12 deletions(-)
+
+diff --git a/src/core/abi.cc b/src/core/abi.cc
+index adff7b5..76c664c 100644
+--- a/src/core/abi.cc
++++ b/src/core/abi.cc
+@@ -20,9 +20,7 @@ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $");
+ bool scan_abi(hwNode & system)
+ {
+   // are we compiled as 32- or 64-bit process ?
+-  long sc = sysconf(LONG_BIT);
+-  if(sc==-1) sc = sysconf(_SC_LONG_BIT);
+-  if(sc!=-1) system.setWidth(sc);
++  system.setWidth(LONG_BIT);
+ 
+   pushd(PROC_SYS);
+ 
+diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
+index 32d6564..c2fa84f 100644
+--- a/src/core/sysfs.cc
++++ b/src/core/sysfs.cc
+@@ -16,6 +16,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <sys/mount.h>
++#include <libgen.h>
+ 
+ 
+ __ID("@(#) $Id$");
+@@ -100,7 +101,7 @@ static string sysfs_getbustype(const string & path)
+   {
+     devname =
+       string(fs.path + "/bus/") + string(namelist[i]->d_name) +
+-      "/devices/" + basename(path.c_str());
++      "/devices/" + basename(const_cast<char*>(path.c_str()));
+ 
+     if (samefile(devname, path))
+       return string(namelist[i]->d_name);
+@@ -140,7 +141,7 @@ static string sysfstobusinfo(const string & path)
+ 
+   if (bustype == "usb")
+   {
+-    string name = basename(path.c_str());
++    string name = basename(const_cast<char*>(path.c_str()));
+     if (matches(name, "^[0-9]+-[0-9]+(\\.[0-9]+)*:[0-9]+\\.[0-9]+$"))
+     {
+       size_t colon = name.rfind(":");
+@@ -151,7 +152,7 @@ static string sysfstobusinfo(const string & path)
+ 
+   if (bustype == "virtio")
+   {
+-    string name = basename(path.c_str());
++    string name = basename(const_cast<char*>(path.c_str()));
+     if (name.compare(0, 6, "virtio") == 0)
+       return "virtio@" + name.substr(6);
+     else
+@@ -159,10 +160,10 @@ static string sysfstobusinfo(const string & path)
+   }
+ 
+   if (bustype == "vio")
+-    return string("vio@") + basename(path.c_str());
++    return string("vio@") + basename(const_cast<char*>(path.c_str()));
+ 
+   if (bustype == "ccw")
+-    return string("ccw@") + basename(path.c_str());
++    return string("ccw@") + basename(const_cast<char*>(path.c_str()));
+ 
+   if (bustype == "ccwgroup")
+   {
+@@ -240,7 +241,7 @@ string entry::driver() const
+   string driverlink = This->devpath + "/driver";
+   if (!exists(driverlink))
+     return "";
+-  return basename(readlink(driverlink).c_str());
++  return basename(const_cast<char*>(readlink(driverlink).c_str()));
+ }
+ 
+ 
+@@ -328,7 +329,7 @@ string entry::name_in_class(const string & classname) const
+ 
+ string entry::name() const
+ {
+-  return basename(This->devpath.c_str());
++  return basename(const_cast<char*>(This->devpath.c_str()));
+ }
+ 
+ 
+@@ -340,12 +341,12 @@ entry entry::parent() const
+ 
+ string entry::classname() const
+ {
+-  return basename(dirname(This->devpath).c_str());
++  return basename(const_cast<char*>(dirname(This->devpath).c_str()));
+ }
+ 
+ bool entry::isvirtual() const
+ {
+-  return string(basename(dirname(dirname(This->devpath)).c_str())) == "virtual";
++  return string(basename(const_cast<char*>(dirname(dirname(This->devpath)).c_str()))) == "virtual";
+ }
+ 
+ string entry::string_attr(const string & name, const string & def) const
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
deleted file mode 100644
index 6db6ab9..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 62f9ed95b5d0feab426bff452be793c62a6b795a Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:49:21 +0200
-Subject: [PATCH 1/2] Makefile: Fix cross compilation
-
-Allow building on ARMv7 and ARMv8.
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/Makefile      | 2 +-
- src/core/Makefile | 2 +-
- src/gui/Makefile  | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index b50586bc9234..654b786dd899 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -18,7 +18,7 @@ export MANDIR
- export DATADIR
- export SQLITE
- 
--CXX?=c++
-+CXX?=$(CROSS_COMPILE)c++
- INCLUDES=-I./core/
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
-diff --git a/src/core/Makefile b/src/core/Makefile
-index 5bf5a69cc6a6..2bd1b94c4175 100644
---- a/src/core/Makefile
-+++ b/src/core/Makefile
-@@ -1,6 +1,6 @@
- PACKAGENAME?=lshw
- 
--CXX=c++
-+CXX?=$(CROSS_COMPILE)c++
- INCLUDES=
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- CXXFLAGS?=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
-diff --git a/src/gui/Makefile b/src/gui/Makefile
-index 332ce5704819..b0f925490356 100644
---- a/src/gui/Makefile
-+++ b/src/gui/Makefile
-@@ -1,7 +1,7 @@
- PACKAGENAME?=lshw
- 
--CXX?=c++
--CC?=cc
-+CXX?=$(CROSS_COMPILE)c++
-+CC?=$(CROSS_COMPILE)cc
- STRIP?=strip
- OBJCOPY?=objcopy
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
deleted file mode 100644
index d3da01b..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 75667f8a0ae4f1689ff03eb1768b1ee8cdfbf00d Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:49:30 +0200
-Subject: [PATCH 2/2] Makefile: Use supplied LDFLAGS to silence OE GNU_HASH QA
- warning
-
-Fix OpenEmbedded/Yocto QA warning:
-
-    ERROR: lshw-02.16-r1 do_package_qa: QA Issue: No GNU_HASH in the elf binary: 'build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/lshw/02.16-r1/packages-split/lshw/usr/sbin/lshw' [ldflags]
-    ERROR: lshw-02.16-r1 do_package_qa: QA run found fatal errors. Please consider fixing them.
-    ERROR: lshw-02.16-r1 do_package_qa: Function failed: do_package_qa
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 654b786dd899..a441ba2bb666 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -25,7 +25,7 @@ CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
- ifeq ($(SQLITE), 1)
- 	CXXFLAGS+= -DSQLITE $(shell pkg-config --cflags sqlite3)
- endif
--LDFLAGS=-L./core/ -g
-+LDFLAGS+=-L./core/ -g
- ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
- 	LDFLAGS+= -Wl,--as-needed
- endif
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
deleted file mode 100644
index 3492493..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From a89f2ba8496994c8b5e28a89202df15d64c648f9 Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:47:02 +0200
-Subject: [PATCH] sysfs: Fix basename() build with musl
-
-musl provides only standard basename() which accepts non-const string.
-This fixes build error with musl C library:
-
-    | sysfs.cc: In function 'std::__cxx11::string sysfs_getbustype(const string&)':
-    | sysfs.cc:102:21: error: 'basename' was not declared in this scope
-    |        "/devices/" + basename(path.c_str());
-    |                      ^~~~~~~~
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/core/dasd.cc  | 3 ++-
- src/core/sysfs.cc | 9 +++++----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/src/core/dasd.cc b/src/core/dasd.cc
-index 626b8a872b0f..b27844215cc4 100644
---- a/src/core/dasd.cc
-+++ b/src/core/dasd.cc
-@@ -2,6 +2,7 @@
- #include "osutils.h"
- #include "dasd.h"
- #include <glob.h>
-+#include <libgen.h>
- #include <string.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -42,7 +43,7 @@ bool scan_dasd(hwNode & n)
-   {
-     for(dev_num=0;dev_num<devices.gl_pathc;dev_num++)
-     {
--      dev_name = basename(devices.gl_pathv[dev_num]);
-+      dev_name = basename(const_cast<char *>(devices.gl_pathv[dev_num]));
-       for (std::vector<std::string>::iterator it = sysfs_attribs.begin(); it != sysfs_attribs.end(); ++it)
-       {
-         std::string attrib_fname = std::string(SYSFS_PREFIX) + dev_name + "/device/" + *it;
-diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
-index acc9d0056d5e..c56bab7b3b9f 100644
---- a/src/core/sysfs.cc
-+++ b/src/core/sysfs.cc
-@@ -7,6 +7,7 @@
- #include "version.h"
- #include "sysfs.h"
- #include "osutils.h"
-+#include <libgen.h>
- #include <limits.h>
- #include <unistd.h>
- #include <stdlib.h>
-@@ -99,7 +100,7 @@ static string sysfs_getbustype(const string & path)
-   {
-     devname =
-       string(fs.path + "/bus/") + string(namelist[i]->d_name) +
--      "/devices/" + basename(path.c_str());
-+      "/devices/" + basename(const_cast<char *>(path.c_str()));
- 
-     if (samefile(devname, path))
-       return string(namelist[i]->d_name);
-@@ -139,7 +140,7 @@ static string sysfstobusinfo(const string & path)
- 
-   if (bustype == "virtio")
-   {
--    string name = basename(path.c_str());
-+    string name = basename(const_cast<char *>(path.c_str()));
-     if (name.compare(0, 6, "virtio") == 0)
-       return "virtio@" + name.substr(6);
-     else
-@@ -207,7 +208,7 @@ string entry::driver() const
-   string driverlink = This->devpath + "/driver";
-   if (!exists(driverlink))
-     return "";
--  return basename(readlink(driverlink).c_str());
-+  return basename(const_cast<char *>(readlink(driverlink).c_str()));
- }
- 
- 
-@@ -288,7 +289,7 @@ string entry::name_in_class(const string & classname) const
- 
- string entry::name() const
- {
--  return basename(This->devpath.c_str());
-+  return basename(const_cast<char *>(This->devpath.c_str()));
- }
- 
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
similarity index 70%
rename from meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
rename to meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
index d1a7334..a26fac9 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
@@ -13,12 +13,10 @@
 
 SRC_URI = " \
     http://ezix.org/software/files/lshw-B.${PV}.tar.gz \
-    file://0001-Makefile-Fix-cross-compilation.patch \
-    file://0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch \
-    file://0003-sysfs-Fix-basename-build-with-musl.patch \
+    file://0001-Fix-musl-build.patch \
 "
-SRC_URI[md5sum] = "8671c6d94d6324a744b7f21f1bfecfd2"
-SRC_URI[sha256sum] = "ae22ef11c934364be4fd2a0a1a7aadf4495a0251ec6979da280d342a89ca3c2f"
+SRC_URI[md5sum] = "8c70d46e906688309095c73ecb9396e3"
+SRC_URI[sha256sum] = "9bb347ac87142339a366a1759ac845e3dbb337ec000aa1b99b50ac6758a80f80"
 
 S = "${WORKDIR}/lshw-B.${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua/0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch
new file mode 100644
index 0000000..a302874
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch
@@ -0,0 +1,90 @@
+From 1e6df25ac28dcd89f0324177bb55019422404b44 Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Thu, 3 Sep 2020 15:32:17 +0800
+Subject: [PATCH] Fixed bug: barriers cannot be active during sweep
+
+Barriers cannot be active during sweep, even in generational mode.
+(Although gen. mode is not incremental, it can hit a barrier when
+deleting a thread and closing its upvalues.)  The colors of objects are
+being changed during sweep and, therefore, cannot be trusted.
+
+Upstream-Status: Backport [https://github.com/lua/lua/commit/a6da1472c0c5e05ff249325f979531ad51533110]
+CVE: CVE-2020-24371
+
+[Adjust code KGC_INC -> KGC_NORMAL, refer 69371c4b84becac09c445aae01d005b49658ef82]
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ src/lgc.c | 33 ++++++++++++++++++++++++---------
+ 1 file changed, 24 insertions(+), 9 deletions(-)
+
+diff --git a/src/lgc.c b/src/lgc.c
+index 973c269..7af23d5 100644
+--- a/src/lgc.c
++++ b/src/lgc.c
+@@ -142,10 +142,17 @@ static int iscleared (global_State *g, const TValue *o) {
+ 
+ 
+ /*
+-** barrier that moves collector forward, that is, mark the white object
+-** being pointed by a black object. (If in sweep phase, clear the black
+-** object to white [sweep it] to avoid other barrier calls for this
+-** same object.)
++** Barrier that moves collector forward, that is, marks the white object
++** 'v' being pointed by the black object 'o'.  In the generational
++** mode, 'v' must also become old, if 'o' is old; however, it cannot
++** be changed directly to OLD, because it may still point to non-old
++** objects. So, it is marked as OLD0. In the next cycle it will become
++** OLD1, and in the next it will finally become OLD (regular old). By
++** then, any object it points to will also be old.  If called in the
++** incremental sweep phase, it clears the black object to white (sweep
++** it) to avoid other barrier calls for this same object. (That cannot
++** be done is generational mode, as its sweep does not distinguish
++** whites from deads.)
+ */
+ void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v) {
+   global_State *g = G(L);
+@@ -154,7 +161,8 @@ void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v) {
+     reallymarkobject(g, v);  /* restore invariant */
+   else {  /* sweep phase */
+     lua_assert(issweepphase(g));
+-    makewhite(g, o);  /* mark main obj. as white to avoid other barriers */
++    if (g->gckind == KGC_NORMAL)  /* incremental mode? */
++      makewhite(g, o);  /* mark 'o' as white to avoid other barriers */
+   }
+ }
+ 
+@@ -299,10 +307,15 @@ static void markbeingfnz (global_State *g) {
+ 
+ 
+ /*
+-** Mark all values stored in marked open upvalues from non-marked threads.
+-** (Values from marked threads were already marked when traversing the
+-** thread.) Remove from the list threads that no longer have upvalues and
+-** not-marked threads.
++** For each non-marked thread, simulates a barrier between each open
++** upvalue and its value. (If the thread is collected, the value will be
++** assigned to the upvalue, but then it can be too late for the barrier
++** to act. The "barrier" does not need to check colors: A non-marked
++** thread must be young; upvalues cannot be older than their threads; so
++** any visited upvalue must be young too.) Also removes the thread from
++** the list, as it was already visited. Removes also threads with no
++** upvalues, as they have nothing to be checked. (If the thread gets an
++** upvalue later, it will be linked in the list again.)
+ */
+ static void remarkupvals (global_State *g) {
+   lua_State *thread;
+@@ -313,9 +326,11 @@ static void remarkupvals (global_State *g) {
+       p = &thread->twups;  /* keep marked thread with upvalues in the list */
+     else {  /* thread is not marked or without upvalues */
+       UpVal *uv;
++      lua_assert(!isold(thread) || thread->openupval == NULL);
+       *p = thread->twups;  /* remove thread from the list */
+       thread->twups = thread;  /* mark that it is out of list */
+       for (uv = thread->openupval; uv != NULL; uv = uv->u.open.next) {
++        lua_assert(getage(uv) <= getage(thread));
+         if (uv->u.open.touched) {
+           markvalue(g, uv->v);  /* remark upvalue's value */
+           uv->u.open.touched = 0;
+-- 
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua/CVE-2020-15945.patch b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/CVE-2020-15945.patch
new file mode 100644
index 0000000..89ce491
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua/CVE-2020-15945.patch
@@ -0,0 +1,167 @@
+From d8d344365945a534f700c82c5dd26f704f89fef3 Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Wed, 5 Aug 2020 16:59:58 +0800
+Subject: [PATCH] Fixed bug: invalid 'oldpc' when returning to a function
+
+The field 'L->oldpc' is not always updated when control returns to a
+function; an invalid value can seg. fault when computing 'changedline'.
+(One example is an error in a finalizer; control can return to
+'luaV_execute' without executing 'luaD_poscall'.) Instead of trying to
+fix all possible corner cases, it seems safer to be resilient to invalid
+values for 'oldpc'. Valid but wrong values at most cause an extra call
+to a line hook.
+
+CVE: CVE-2020-15945
+
+[Adjust the code to be applicable to the tree]
+
+Upstream-Status: Backport [https://github.com/lua/lua/commit/a2195644d89812e5b157ce7bac35543e06db05e3]
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@@windriver.com>
+
+---
+ src/ldebug.c | 30 +++++++++++++++---------------
+ src/ldebug.h |  4 ++++
+ src/ldo.c    |  2 +-
+ src/lstate.c |  1 +
+ src/lstate.h |  2 +-
+ 5 files changed, 22 insertions(+), 17 deletions(-)
+
+diff --git a/src/ldebug.c b/src/ldebug.c
+index 239affb..832b16c 100644
+--- a/src/ldebug.c
++++ b/src/ldebug.c
+@@ -34,9 +34,8 @@
+ #define noLuaClosure(f)		((f) == NULL || (f)->c.tt == LUA_TCCL)
+ 
+ 
+-/* Active Lua function (given call info) */
+-#define ci_func(ci)		(clLvalue((ci)->func))
+-
++/* inverse of 'pcRel' */
++#define invpcRel(pc, p)                ((p)->code + (pc) + 1)
+ 
+ static const char *funcnamefromcode (lua_State *L, CallInfo *ci,
+                                     const char **name);
+@@ -71,20 +70,18 @@ static void swapextra (lua_State *L) {
+ 
+ /*
+ ** This function can be called asynchronously (e.g. during a signal).
+-** Fields 'oldpc', 'basehookcount', and 'hookcount' (set by
+-** 'resethookcount') are for debug only, and it is no problem if they
+-** get arbitrary values (causes at most one wrong hook call). 'hookmask'
+-** is an atomic value. We assume that pointers are atomic too (e.g., gcc
+-** ensures that for all platforms where it runs). Moreover, 'hook' is
+-** always checked before being called (see 'luaD_hook').
++** Fields 'basehookcount' and 'hookcount' (set by 'resethookcount')
++** are for debug only, and it is no problem if they get arbitrary
++** values (causes at most one wrong hook call). 'hookmask' is an atomic
++** value. We assume that pointers are atomic too (e.g., gcc ensures that
++** for all platforms where it runs). Moreover, 'hook' is always checked
++** before being called (see 'luaD_hook').
+ */
+ LUA_API void lua_sethook (lua_State *L, lua_Hook func, int mask, int count) {
+   if (func == NULL || mask == 0) {  /* turn off hooks? */
+     mask = 0;
+     func = NULL;
+   }
+-  if (isLua(L->ci))
+-    L->oldpc = L->ci->u.l.savedpc;
+   L->hook = func;
+   L->basehookcount = count;
+   resethookcount(L);
+@@ -665,7 +662,10 @@ l_noret luaG_runerror (lua_State *L, const char *fmt, ...) {
+ void luaG_traceexec (lua_State *L) {
+   CallInfo *ci = L->ci;
+   lu_byte mask = L->hookmask;
++  const Proto *p = ci_func(ci)->p;
+   int counthook = (--L->hookcount == 0 && (mask & LUA_MASKCOUNT));
++  /* 'L->oldpc' may be invalid; reset it in this case */
++  int oldpc = (L->oldpc < p->sizecode) ? L->oldpc : 0;
+   if (counthook)
+     resethookcount(L);  /* reset count */
+   else if (!(mask & LUA_MASKLINE))
+@@ -677,15 +677,15 @@ void luaG_traceexec (lua_State *L) {
+   if (counthook)
+     luaD_hook(L, LUA_HOOKCOUNT, -1);  /* call count hook */
+   if (mask & LUA_MASKLINE) {
+-    Proto *p = ci_func(ci)->p;
+     int npc = pcRel(ci->u.l.savedpc, p);
+     int newline = getfuncline(p, npc);
+     if (npc == 0 ||  /* call linehook when enter a new function, */
+-        ci->u.l.savedpc <= L->oldpc ||  /* when jump back (loop), or when */
+-        newline != getfuncline(p, pcRel(L->oldpc, p)))  /* enter a new line */
++        ci->u.l.savedpc <= invpcRel(oldpc, p) ||  /* when jump back (loop), or when */
++        newline != getfuncline(p, oldpc))  /* enter a new line */
+       luaD_hook(L, LUA_HOOKLINE, newline);  /* call line hook */
++
++    L->oldpc = npc;  /* 'pc' of last call to line hook */
+   }
+-  L->oldpc = ci->u.l.savedpc;
+   if (L->status == LUA_YIELD) {  /* did hook yield? */
+     if (counthook)
+       L->hookcount = 1;  /* undo decrement to zero */
+diff --git a/src/ldebug.h b/src/ldebug.h
+index 0e31546..c224cc4 100644
+--- a/src/ldebug.h
++++ b/src/ldebug.h
+@@ -13,6 +13,10 @@
+ 
+ #define pcRel(pc, p)	(cast(int, (pc) - (p)->code) - 1)
+ 
++/* Active Lua function (given call info) */
++#define ci_func(ci)            (clLvalue((ci)->func))
++
++
+ #define getfuncline(f,pc)	(((f)->lineinfo) ? (f)->lineinfo[pc] : -1)
+ 
+ #define resethookcount(L)	(L->hookcount = L->basehookcount)
+diff --git a/src/ldo.c b/src/ldo.c
+index 90b695f..f66ac1a 100644
+--- a/src/ldo.c
++++ b/src/ldo.c
+@@ -382,7 +382,7 @@ int luaD_poscall (lua_State *L, CallInfo *ci, StkId firstResult, int nres) {
+       luaD_hook(L, LUA_HOOKRET, -1);
+       firstResult = restorestack(L, fr);
+     }
+-    L->oldpc = ci->previous->u.l.savedpc;  /* 'oldpc' for caller function */
++    L->oldpc = pcRel(ci->u.l.savedpc, ci_func(ci)->p);  /* 'oldpc' for caller function */
+   }
+   res = ci->func;  /* res == final position of 1st result */
+   L->ci = ci->previous;  /* back to caller */
+diff --git a/src/lstate.c b/src/lstate.c
+index 9194ac3..3573e36 100644
+--- a/src/lstate.c
++++ b/src/lstate.c
+@@ -236,6 +236,7 @@ static void preinit_thread (lua_State *L, global_State *g) {
+   L->nny = 1;
+   L->status = LUA_OK;
+   L->errfunc = 0;
++  L->oldpc = 0;
+ }
+ 
+ 
+diff --git a/src/lstate.h b/src/lstate.h
+index a469466..d75eadf 100644
+--- a/src/lstate.h
++++ b/src/lstate.h
+@@ -164,7 +164,6 @@ struct lua_State {
+   StkId top;  /* first free slot in the stack */
+   global_State *l_G;
+   CallInfo *ci;  /* call info for current function */
+-  const Instruction *oldpc;  /* last pc traced */
+   StkId stack_last;  /* last free slot in the stack */
+   StkId stack;  /* stack base */
+   UpVal *openupval;  /* list of open upvalues in this stack */
+@@ -174,6 +173,7 @@ struct lua_State {
+   CallInfo base_ci;  /* CallInfo for first level (C calling Lua) */
+   volatile lua_Hook hook;
+   ptrdiff_t errfunc;  /* current error handling function (stack index) */
++  int oldpc;  /* last pc traced */
+   int stacksize;
+   int basehookcount;
+   int hookcount;
+-- 
+2.13.3
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb b/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
index d3461b0..7d84ea6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.5.bb
@@ -8,6 +8,8 @@
            file://lua.pc.in \
            file://0001-Allow-building-lua-without-readline-on-Linux.patch \
            file://CVE-2020-15888.patch \
+           file://CVE-2020-15945.patch \
+           file://0001-Fixed-bug-barriers-cannot-be-active-during-sweep.patch \
            "
 
 # if no test suite matches PV release of Lua exactly, download the suite for the closest Lua release.
diff --git a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
index cc90394..6573efc 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_git.bb
@@ -3,13 +3,15 @@
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d739bb9250a55c124a545b588fd76771"
 HOMEPAGE = "http://luajit.org"
 
-PV = "2.1.0~beta3"
-SRCREV = "0ad60ccbc3768fa8e3e726858adf261950edbc22"
 SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \
            file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
            file://clang.patch \
            "
 
+# Set PV to a version tag and date associated with SRCREV if it is later.
+PV = "2.1.0~beta3-200809"
+SRCREV = "94d4abcca966df2cc423e821bcacd04898f73117"
+
 S = "${WORKDIR}/git"
 
 inherit pkgconfig binconfig siteinfo
diff --git a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.4.bb b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.5.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.4.bb
rename to meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.5.bb
index fa3c734..7980960 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_5.5.bb
@@ -10,8 +10,8 @@
 inherit python3native
 
 SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
-SRC_URI[md5sum] = "0859029d0bb54bcf7c583c55680573cb"
-SRC_URI[sha256sum] = "1df8d1978aefcbb65dc51e3666a452583f47aeaf3c5682e4c00a3b23cd805d6a"
+SRC_URI[md5sum] = "17b21729cbc61dda80b2e3dfc046319f"
+SRC_URI[sha256sum] = "c1ed28e1534304a7a4981ed59905286d1c56acd5b75755eedd184171a4a782b4"
 
 S = "${WORKDIR}/mercurial-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.1.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.1.bb
index 0f5ef70..3593242 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.9.1.bb
@@ -7,7 +7,7 @@
 SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1 \
            "
 
-SRCREV = "d34771cafc87b358ba421faca28facc7f8080174"
+SRCREV = "db78ac1d7716f56fc9f1b030b715f872f93964e4"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch
deleted file mode 100644
index 618ce26..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a763610719e7d7f6cdc45569b6fbfdb91bb7c87b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Jul 2019 14:30:08 -0700
-Subject: [PATCH] Do not include syscrtl.h with glibc
-
-glibc 2.30 has deprecated it see [1]
-Fixes
-sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror,-W#warnings]
-
-[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=744e829637162bb7d5029632aacf341c64b86990
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/helper/options.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/helper/options.c b/src/helper/options.c
-index 12755e010..4007e37f6 100644
---- a/src/helper/options.c
-+++ b/src/helper/options.c
-@@ -34,7 +34,7 @@
- #if IS_DARWIN
- #include <libproc.h>
- #endif
--#ifdef HAVE_SYS_SYSCTL_H
-+#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
- #include <sys/sysctl.h>
- #endif
- #if IS_WIN32 && !IS_CYGWIN
--- 
-2.22.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-bitbang-Make-bitbang_swd-extern-definition.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-bitbang-Make-bitbang_swd-extern-definition.patch
deleted file mode 100644
index d42b628..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-bitbang-Make-bitbang_swd-extern-definition.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 428f9f3c4a5be973e4c7fc1325ae9dbe41040df2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Aug 2020 17:47:35 -0700
-Subject: [PATCH] bitbang: Make bitbang_swd extern definition
-
-Fixes build with gcc10+
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jtag/drivers/bitbang.c | 1 +
- src/jtag/drivers/bitbang.h | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/jtag/drivers/bitbang.c b/src/jtag/drivers/bitbang.c
-index b5078c080..f8612aade 100644
---- a/src/jtag/drivers/bitbang.c
-+++ b/src/jtag/drivers/bitbang.c
-@@ -43,6 +43,7 @@ static int bitbang_stableclocks(int num_cycles);
- static void bitbang_swd_write_reg(uint8_t cmd, uint32_t value, uint32_t ap_delay_clk);
- 
- struct bitbang_interface *bitbang_interface;
-+const struct swd_driver bitbang_swd;
- 
- /* DANGER!!!! clock absolutely *MUST* be 0 in idle or reset won't work!
-  *
-diff --git a/src/jtag/drivers/bitbang.h b/src/jtag/drivers/bitbang.h
-index 577717ebd..0faf5d9ae 100644
---- a/src/jtag/drivers/bitbang.h
-+++ b/src/jtag/drivers/bitbang.h
-@@ -57,7 +57,7 @@ struct bitbang_interface {
- 	void (*swdio_drive)(bool on);
- };
- 
--const struct swd_driver bitbang_swd;
-+extern const struct swd_driver bitbang_swd;
- 
- extern bool swd_mode;
- 
--- 
-2.28.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
index c7d754f..4f6aaa8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -9,15 +9,13 @@
     git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl \
     git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl \
     git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink \
-    file://0001-Do-not-include-syscrtl.h-with-glibc.patch \
-    file://0001-bitbang-Make-bitbang_swd-extern-definition.patch \
 "
 
 SRCREV_FORMAT = "openocd"
-SRCREV_openocd = "ded67990255cc1e63c77832ffd6e6bef9120873d"
+SRCREV_openocd = "d46f28c2ea2611f5fbbc679a5eed253d3dcd2fe3"
 SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
-SRCREV_jimtcl = "dc4ba7770d580800634f90b67a24e077b4a26d98"
-SRCREV_libjaylink = "3322dfa5e7aa56f5b12b7f2197e3e6b850b7b66e"
+SRCREV_jimtcl = "0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"
+SRCREV_libjaylink = "9aa7a5957c07bb6e862fc1a6d3153d109c7407e4"
 
 PV = "0.10+gitr${SRCPV}"
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
old mode 100755
new mode 100644
index 21050f7..a4804d1
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch
@@ -1,31 +1,32 @@
-php: remove host specific info from header file
+From 1234a8ef7c5ab88e24bc5908f0ccfd55af21aa39 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Mon, 31 Aug 2020 16:03:27 +0300
+Subject: [PATCH] php: remove host specific info from header file
 
+Based on:
 https://sources.debian.org/data/main/p/php7.3/7.3.6-1/debian/patches/
         0036-php-5.4.9-fixheader.patch
 
 Upstream-Status: Inappropriate [not author]
 Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
----
-From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
-Date: Sat, 2 May 2015 10:26:56 +0200
-Subject: php-5.4.9-fixheader
-
-Make generated php_config.h constant across rebuilds.
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 ---
  configure.ac | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 433d7e6..41893d7 100644
+index 2a474ba36d..6d22a21630 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1357,7 +1357,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d`
+@@ -1323,7 +1323,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d`
  fi
  AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
  
--PHP_UNAME=`uname -a | xargs`
-+PHP_UNAME=`uname | xargs`
+-UNAME=`uname -a | xargs`
++UNAME=`uname | xargs`
+ PHP_UNAME=${PHP_UNAME:-$UNAME}
  AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
  PHP_OS=`uname | xargs`
- AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.9.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb
rename to meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.9.bb
index f74533c..abd8b16 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.4.9.bb
@@ -31,9 +31,10 @@
             file://0001-opcache-config.m4-enable-opcache.patch \
             file://xfail_two_bug_tests.patch \
           "
+
 S = "${WORKDIR}/php-${PV}"
-SRC_URI[md5sum] = "262c258a3b8b5699fcca89a64e58758c"
-SRC_URI[sha256sum] = "308e8f4182ec8a2767b0b1b8e1e7c69fb149b37cfb98ee4a37475e082fa9829f"
+SRC_URI[md5sum] = "e68a66c54b080d108831f6dc2e1e403d"
+SRC_URI[sha256sum] = "2e270958a4216480da7886743438ccc92b6acf32ea96fefda88d07e0a5095deb"
 
 inherit autotools pkgconfig python3native gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.12.3.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.13.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.12.3.bb
rename to meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.13.0.bb
index 21ad7a4..f2c5e2b 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.12.3.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.13.0.bb
@@ -10,7 +10,7 @@
 DEPENDS = "zlib"
 DEPENDS_append_class-target = " protobuf-native"
 
-SRCREV = "31ebe2ac71400344a5db91ffc13c4ddfb7589f92"
+SRCREV = "fde7cf7358ec7cd69e8db9be4f1fa6a5c431386a"
 
 SRC_URI = "git://github.com/protocolbuffers/protobuf.git \
            file://run-ptest \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.3.bb b/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.3.bb
deleted file mode 100644
index 049cdef..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.3.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Header-only C++ library for JSON Schema validation"
-HOMEPAGE = "https://github.com/tristanpenman/valijson"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=015106c62262b2383f6c72063f0998f2"
-
-SRC_URI = "git://github.com/tristanpenman/valijson.git"
-SRCREV = "7a52fc88cdffd6678c009ca2fad700151f7363c6"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DINSTALL_HEADERS=1 -DBUILD_TESTS=0"
-
-DEPENDS = "curlpp"
-
-# valijson is a header only C++ library, so the main package will be empty.
-RDEPENDS_${PN}-dev = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install() {
-    install -d ${D}${includedir}/compat
-    install -d ${D}${includedir}/valijson
-    install -d ${D}${includedir}/valijson/adapters
-    install -d ${D}${includedir}/valijson/constraints
-    install -d ${D}${includedir}/valijson/internal
-    install -d ${D}${includedir}/valijson/utils
-
-    install -m 0644 ${S}/include/compat/* ${D}${includedir}/compat
-    install -D -m 0644 ${S}/include/valijson/*.hpp -t ${D}${includedir}/valijson
-    install -D -m 0644 ${S}/include/valijson/adapters/*.hpp -t ${D}${includedir}/valijson/adapters
-    install -D -m 0644 ${S}/include/valijson/constraints/*.hpp -t ${D}${includedir}/valijson/constraints
-    install -D -m 0644 ${S}/include/valijson/internal/*.hpp -t ${D}${includedir}/valijson/internal
-    install -D -m 0644 ${S}/include/valijson/utils/*.hpp -t ${D}${includedir}/valijson/utils
-}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch
new file mode 100644
index 0000000..3d861fc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch
@@ -0,0 +1,29 @@
+From ea4ca50ca9cab755f3722096158a46deec0e663a Mon Sep 17 00:00:00 2001
+From: Arthur She <arthur.she@linaro.org>
+Date: Tue, 25 Aug 2020 09:51:26 -0700
+Subject: [PATCH] src/Makefile: Fix Makefile macro error
+
+This error caused the curl library wouldn't be linked correctly.
+
+Upstream-Status: Pending
+Signed-off-by: Arthur She <arthur.she@linaro.org>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 1cdf8b0..acd04dd 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -57,7 +57,7 @@ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curltransaction
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curlmulti
+-  TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
++  TRANSPORT_LIBDEP += $(shell $(CURL_CONFIG) --libs)
+   TRANSPORT_INCLUDES += -Isrcdir/lib/curl_transport
+ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
index c1f0b78..aba6dfd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
@@ -8,6 +8,7 @@
 SRC_URI = "git://github.com/mirror/xmlrpc-c.git \
            file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
            file://0002-fix-formatting-issues.patch \
+           file://0003-src-Makefile-Fix-Makefile-macro-error.patch \
            "
 
 #Release 1.54.02