meta-openembedded: subtree update:08c0280b7c..4fe1065655

Alexander Kanavin (1):
      libmicrohttpd: remove the recipe

Andreas Müller (4):
      jack: upgrade 1.19.17 -> 1.19.18
      xfce4-settings: upgrade 4.16.0 -> 4.16.1
      zsh: reduce priority slightly to avoid conflict with bash
      mutter/wayland: replace xserver-xorg-xwayland by xwayland in rdep

Andrej Kozemcak (1):
      proftpd: Update to 1.3.7a release

Armin Kuster (3):
      wireguard: update to v1.0.20210219 +1
      nostromo: remove recipe
      packagegroup-meta-webserver: remove nostromo from pkg grp

Chen Qi (3):
      tigervnc: upgrade to 1.11.0
      python3-django: upgrade to 2.2.20
      tigervnc: fix do_package error when enabling user merge

Gianfranco (1):
      vboxguestdrivers: upgrade 6.1.18 -> 6.1.20

Hongxu Jia (1):
      debootstrap: explicitly add virtual/fakeroot-native to depends

Joe Hershberger (1):
      strongswan: Make PACKAGECONFIG a default value

Justin Standring (1):
      tslib: add PACKAGECONFIG for evthres, one-wire-ts-input

Kai Kang (1):
      freeradius: check existence of openssl's commands in bootstrap

Khem Raj (36):
      nss: Re-enable -Werror
      gimp: Disable vector icon generation on mips/glibc too
      iwd: Upgade to 1.13
      python3-icu: Upgrade to 2.7.2
      nodejs: Update to 14.16.1
      nodejs: Fix build with icu-69
      nodejs: Use qemu usermode to run target binaries during build
      nodejs: Fix build on mips
      nodejs: Fix build with clang for x86 target
      tbb: Re-introduce PE
      bearssl: Update to tip of master
      gimp: Disable vector icons on musl/x86
      gd: Replace deprecated types from tiff
      nodejs: Enable snapshot
      python3-docutils: Delete
      libchamplain: Require opengl distro feature
      aom: Match the name for AOM-Patent-License-1.0
      libdevmapper,lvm2: Do not inherit license
      gnome-disk-utility: Require polkit in distro features
      README: Make git send-email example work
      sysprof: Enable sysprofd/libsysprof only when polkit in DISTRO_FEATURES
      packagegroup-gnome-apps: Add gnome-disk-utility only if polkit is in DISTRO_FEATURES
      python3-jinja2_2.%.bbappend: Delete
      python3-pyyaml: Do not check for meta-python
      python3-pyyaml: Delete
      python3-markupsafe: Delete bbappend
      snort,proftpd,net-snmp: Deal with -ffile-prefix-map as well
      apache2: Deal with -ffile-prefix-map
      vk-gl-cts: Fix build with GCC 11
      gegl: Update to 0.4.30
      python3-m2crypto: Upgrade to 0.37.1
      libupnp: Upgrade to 1.14.6
      ctags: Switch to universal ctags
      dibbler: Add libpthread to linker flags
      libowfat: Replace __pure__ with pure and remove using __deprecated__
      emacs: Do not use SIGSTKSZ

Leon Anavi (21):
      python3-bitarray: Upgrade 1.9.2 -> 2.0.0
      python3-xxhash: Upgrade 2.0.0 -> 2.0.2
      python3-xlsxwriter: Upgrade 1.3.8 -> 1.3.9
      python3-docutils: Upgrade 0.17 -> 0.17.1
      python3-portion: Upgrade 2.1.5 -> 2.1.6
      python3-huey: Upgrade 2.3.1 -> 2.3.2
      python3-pysonos: Upgrade 0.0.42 -> 0.0.43
      python3-asttokens: Upgrade 2.0.4 -> 2.0.5
      python3-hyperframe: Upgrade 6.0.0 -> 6.0.1
      python3-argcomplete: Upgrade 1.12.2 -> 1.12.3
      python3-python-vlc: Upgrade 3.0.12117 -> 3.0.12118
      python3-bitarray: Upgrade 2.0.0 -> 2.0.1
      python3-sqlalchemy: Upgrade 1.4.7 -> 1.4.11
      python3-watchdog: Upgrade 2.0.2 -> 2.0.3
      python3-pytest-asyncio: Upgrade 0.14.0 -> 0.15.1
      python3-xlsxwriter: Upgrade 1.3.9 -> 1.4.0
      python3-astroid: Upgrade 2.5.3 -> 2.5.6
      python3-arpeggio: Upgrade 1.10.1 -> 1.10.2
      python3-cachetools: Upgrade 4.2.1 -> 4.2.2
      python3-pymisp: Upgrade 2.4.141.1 -> 2.4.142
      python3-et-xmlfile: Upgrade 1.0.1 -> 1.1.0

Mingli Yu (4):
      python3-cryptography: Upgrade to 3.3.2
      onig: add oniguruma to PROVIDES
      php: Upgrade to 7.4.16
      tk: adapt to potential pseudo changes

Persian Prince (1):
      libdvdnav 6.1.1

Peter Kjellerstedt (1):
      syslog-ng: Merge .bb and .inc

Ramon Fried (1):
      bitwise: Upgrade 0.41 -> 0.42

Reto Schneider (1):
      nng: Upgrade 1.2.5 -> 1.4.0

Saul Wold (2):
      tbb: Disable PPC as COMPATIBLE_MACHINE
      packagegroup-meta-oe: conditional remove tbb for powerpc

Silcet (2):
      ufw: fix python shebang
      ufw: bump version to 0.36 and add services

Sinan Kaya (1):
      zram: add support for mem_limit

Stefan Ghinea (1):
      python3-django: fix CVE-2021-28658

Ulrich Ölmann (1):
      v4l-utils: fix reproducibility

Yi Fan Yu (3):
      syslog-ng: upgrade 3.24.1 -> 3.31.2
      syslog-ng: remove CONFIG_TLS override for arm DEBUG_BUILD
      syslog-ng: Drop an obsolete patch to add --enable-libnet

Yi Zhao (1):
      gvfs: rdepend on gsettings-desktop-schemas

zangrc (19):
      fuse3: upgrade 3.10.2 -> 3.10.3
      cifs-utils: upgrade 6.12 -> 6.13
      dnsmasq: upgrade 2.84 -> 2.85
      nbdkit: upgrade 1.25.5 -> 1.25.6
      wolfssl: upgrade 4.7.0 -> 4.7.1
      networkmanager: upgrade 1.30.2 -> 1.30.4
      libdvdread: upgrade 6.1.1 -> 6.1.2
      libwebsockets: upgrade 4.1.6 -> 4.2.0
      ostree: upgrade 2021.1 -> 2021.2
      redis: upgrade 6.2.1 -> 6.2.2
      tinyproxy: upgrade 1.10.0 -> 1.11.0
      nss: upgrade 3.63 -> 3.64
      babeld: upgrade 1.9.2 -> 1.10
      fetchmail: upgrade 6.4.18 -> 6.4.19
      openvpn: upgrade 2.5.1 -> 2.5.2
      wireshark: upgrade 3.4.4 -> 3.4.5
      debootstrap: upgrade 1.0.123 -> 1.0.124
      mailcap: upgrade 2.1.52 -> 2.1.53
      rsyslog: upgrade 8.2102.0 -> 8.2104.0

zhengruoqin (7):
      irssi: upgrade 1.2.2 -> 1.2.3
      librsync: upgrade 2.3.1 -> 2.3.2
      hiawatha: upgrade 10.11 -> 10.12
      python3-supervisor: upgrade 4.2.1 -> 4.2.2
      python3-zopeinterface: upgrade 5.3.0 -> 5.4.0
      sdparm: upgrade 1.11 -> 1.12
      tcsh: upgrade 6.22.03 -> 6.22.04

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Iaeb2fe4ee0a49cf44ea60bc3c1aef83528d92f55
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
index 1102bb9..c0556e7 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
@@ -23,8 +23,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1fc37e1037ae673975fbcb96a98f7191"
 
-SRCREV = "8ef7680081c61b486622f2d983c0d3d21e83caad"
-SRC_URI = "git://www.bearssl.org/git/BearSSL;protocol=https;nobranch=1 \
+PV .= "+git${SRCPV}"
+SRCREV = "79b1a9996c094ff593ae50bc4edc1f349f39dd6d"
+SRC_URI = "git://www.bearssl.org/git/BearSSL;protocol=https \
 	   file://0001-conf-Unix.mk-remove-fixed-command-definitions.patch \
 	   file://0002-test-test_x509.c-fix-potential-overflow-issue.patch \
            file://0001-make-Pass-LDFLAGS-when-building-shared-objects.patch \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
index c2f4827..b19364e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
@@ -29,6 +29,8 @@
 
 DEPENDS += "flex-native"
 
+LDFLAGS += "-pthread"
+
 PACKAGES =+ "${PN}-requestor ${PN}-client ${PN}-relay ${PN}-server"
 
 FILES_${PN}-client = "${sbindir}/${PN}-client"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch
new file mode 100644
index 0000000..fcadae9
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch
@@ -0,0 +1,38 @@
+bootstrap: check commands of openssl exist
+
+It calls openssl commands dhparam and pkcs12 in script bootstrap. These
+commands are configurable based on configure options 'no-dh' and
+'no-des', and may not be provided by openssl. So check existence of
+these commands. If not, abort running of script bootstrap.
+
+1. https://github.com/openssl/openssl/blob/master/apps/build.info#L37
+2. https://github.com/openssl/openssl/blob/master/apps/build.info#L22
+
+Upstream-Status: Denied [https://github.com/FreeRADIUS/freeradius-server/pull/4059]
+				 The maintainer commented in the pull that the script could
+				 be run on a host which provides these openssl commands.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ raddb/certs/bootstrap | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/raddb/certs/bootstrap b/raddb/certs/bootstrap
+index 0f719aafd4..17feddbeeb 100755
+--- a/raddb/certs/bootstrap
++++ b/raddb/certs/bootstrap
+@@ -13,6 +13,14 @@
+ umask 027
+ cd `dirname $0`
+ 
++#  check commands of openssl exist
++for cmd in dhparam pkcs12; do
++	if ! openssl ${cmd} -help >/dev/null 2>&1; then
++		echo "Error: command ${cmd} is not supported by openssl."
++		exit 1
++	fi
++done
++
+ make -h > /dev/null 2>&1
+ 
+ #
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
index 864a4e9..a6df2ae 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
@@ -31,6 +31,7 @@
     file://0001-workaround-error-with-autoconf-2.7.patch \
     file://radiusd.service \
     file://radiusd-volatiles.conf \
+    file://check-openssl-cmds-in-script-bootstrap.patch \
 "
 
 SRCREV = "af428abda249b2279ba0582180985a9f6f4a144a"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.4.0.bb
similarity index 65%
rename from meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.4.0.bb
index 77be27f..f61aa05 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.2.5.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/nanomsg/nng_1.4.0.bb
@@ -2,20 +2,23 @@
 DESCRIPTION = "NNG, like its predecessors nanomsg (and to some extent ZeroMQ), is a lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery."
 HOMEPAGE = "https://github.com/nanomsg/nng"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a19b15be6e844b39a54de2ef665bd6de"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a41e579bb4326c21c774f8e51e41d8a3"
 
 SECTION = "libs/networking"
 
-SRCREV = "53ae1a5ab37fdfc9ad5c236df3eaf4dd63f0fee9"
+SRCREV = "d020adda8f0348d094790618703b8341a26007a3"
 
-SRC_URI = "git://github.com/nanomsg/nng.git;branch=v1.2.x"
+SRC_URI = "git://github.com/nanomsg/nng.git"
 
 S = "${WORKDIR}/git"
 
 inherit cmake pkgconfig
 
-EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON -DNNG_ENABLE_NNGCAT=ON"
 
 PACKAGECONFIG ??= ""
 
 PACKAGECONFIG[mbedtls] = "-DNNG_ENABLE_TLS=ON,-DNNG_ENABLE_TLS=OFF,mbedtls"
+
+PACKAGES =+ "${PN}-tools"
+FILES_${PN}-tools = "${bindir}/*"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.30.2.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.30.4.bb
similarity index 98%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.30.2.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.30.4.bb
index ec3bdd2..7c07b0a 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.30.2.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.30.4.bb
@@ -31,7 +31,7 @@
     file://musl/0001-Fix-build-with-musl-systemd-specific.patch \
     file://musl/0002-Fix-build-with-musl-systemd-specific.patch \
 "
-SRC_URI[sha256sum] = "0c8e80e77877860e4a4e6ab4a0f7cdc1186e356b65b042a751897188b88944d2"
+SRC_URI[sha256sum] = "6050b724212ea3ce7386113359bea9afa1f679a54f60d999a5999892e672c190"
 
 S = "${WORKDIR}/NetworkManager-${PV}"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.17.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.17.1.bb
index 9c20be5..b5ff430 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.17.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.17.1.bb
@@ -74,7 +74,7 @@
     install -d ${D}${sysconfdir}/default/volatiles
     install -m 0644 ${WORKDIR}/volatiles.99_snort ${D}${sysconfdir}/default/volatiles/99_snort
 
-    sed -i -e 's|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
+    sed -i -e 's|-ffile-prefix-map[^ ]*||g; s|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
 }
 
 pkg_postinst_${PN}() {
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch
index a1e56b7..28068bb 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch
@@ -1,18 +1,31 @@
-Author: Jamie Strandboge <jamie@canonical.com>
-Description: to improve boot speed when disabled, don't source all of
- ufw-init-functions (which also sources in other files).
+From 92fcdbc1a57086e4decc1597217c0739dc16342a Mon Sep 17 00:00:00 2001
+From: Silcet <camorga1@gmail.com>
+Date: Tue, 27 Apr 2021 05:34:59 +0000
+Subject: [PATCH] Author: Jamie Strandboge <jamie@canonical.com>
+Description:
+to improve boot speed when disabled, don't source all of  ufw-init-functions
+(which also sources in other files).
 
 Upstream-Status: Inappropriate [ not author ]
 
 Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
 
-Index: ufw-0.31/src/ufw-init
-===================================================================
---- ufw-0.31.orig/src/ufw-init	2012-03-09 17:07:11.000000000 -0600
-+++ ufw-0.31/src/ufw-init	2012-03-17 09:37:51.000000000 -0500
-@@ -18,6 +18,12 @@
- #
- set -e
+The patch was imported from the OpenEmbedded git server
+(git://git.openembedded.org/openembedded) as of commit id
+2cc1bd9dd060f5002c2fde7aacba86fe230c12af.
+
+Signed-off-by: Silcet <camorga1@gmail.com>
+---
+ src/ufw-init | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/ufw-init b/src/ufw-init
+index 3505a02..dde37f0 100755
+--- a/src/ufw-init
++++ b/src/ufw-init
+@@ -31,6 +31,12 @@ if [ "$1" = "--datadir" ] && [ -s "$2" ]; then
+ fi
+ export DATA_DIR="$datadir"
  
 +# Debian/Ubuntu: small boot speed improvement
 +. "#CONFIG_PREFIX#/ufw/ufw.conf"
@@ -20,6 +33,6 @@
 +    exit 0
 +fi
 +
- if [ -s "#STATE_PREFIX#/ufw-init-functions" ]; then
-     . "#STATE_PREFIX#/ufw-init-functions"
+ if [ -s "${rootdir}#STATE_PREFIX#/ufw-init-functions" ]; then
+     . "${rootdir}#STATE_PREFIX#/ufw-init-functions"
  else
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch
similarity index 87%
rename from meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch
index 5117423..884fa16 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch
@@ -1,6 +1,6 @@
-From c54d36d0582a60fd281cd9287077cea205fd849d Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Thu, 27 Nov 2014 15:20:34 -0500
+From 808577f8464f542076840d0d93fe168a5f79442c Mon Sep 17 00:00:00 2001
+From: Silcet <camorga1@gmail.com>
+Date: Tue, 27 Apr 2021 05:40:03 +0000
 Subject: [PATCH] setup: add an option to specify iptables location
 
 When cross-compiling it isn't certain that the location of iptables on the
@@ -13,15 +13,21 @@
 Upstream-Status: Pending
 
 Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+
+The patch was imported from the OpenEmbedded git server
+(git://git.openembedded.org/openembedded) as of commit id
+2cc1bd9dd060f5002c2fde7aacba86fe230c12af.
+
+Signed-off-by: Silcet <camorga1@gmail.com>
 ---
- setup.py | 69 ++++++++++++++++++++++++++++++++++++----------------------------
- 1 file changed, 39 insertions(+), 30 deletions(-)
+ setup.py | 65 ++++++++++++++++++++++++++++++++------------------------
+ 1 file changed, 37 insertions(+), 28 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index 6fb3751..b13d11c 100644
+index 09204d3..2343bc9 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -225,41 +225,50 @@ shutil.copytree('src', 'staging')
+@@ -246,41 +246,50 @@ shutil.copytree('src', 'staging')
  os.unlink(os.path.join('staging', 'ufw-init'))
  os.unlink(os.path.join('staging', 'ufw-init-functions'))
  
@@ -43,14 +49,6 @@
 -        if iptables_exe != "":
 -            break
 -
--
--if iptables_exe == '':
--    print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
--    sys.exit(1)
--
--for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']:
--    if not os.path.exists(os.path.join(iptables_dir, e)):
--        print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr)
 +if "--iptables-dir" in sys.argv:
 +    iptables_dir = sys.argv[sys.argv.index("--iptables-dir") + 1]
 +    iptables_exe = os.path.join(iptables_dir, "iptables")
@@ -70,10 +68,16 @@
 +                    print("Found '%s'" % iptables_exe)
 +                else:
 +                    continue
-+
+ 
+-if iptables_exe == '':
+-    print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
+-    sys.exit(1)
 +            if iptables_exe != "":
 +                break
-+
+ 
+-for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']:
+-    if not os.path.exists(os.path.join(iptables_dir, e)):
+-        print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr)
 +    if iptables_exe == '':
 +        print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
          sys.exit(1)
@@ -102,6 +106,3 @@
  
  setup (name='ufw',
        version=ufw_version,
--- 
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch
deleted file mode 100644
index 804c18b..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-Origin: r795, r796
-Description: move netfilter capabilities checking into initcaps(), and call
- initcaps() only when we need it.
-Bug-Ubuntu: https://launchpad.net/bugs/1044361
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/src/backend_iptables.py
-===================================================================
---- ufw-0.33.orig/src/backend_iptables.py	2012-09-23 09:58:34.000000000 -0500
-+++ ufw-0.33/src/backend_iptables.py	2012-09-23 09:58:36.000000000 -0500
-@@ -160,6 +160,9 @@
-             out += "> " + _("Checking raw ip6tables\n")
-             return out
- 
-+        # Initialize the capabilities database
-+        self.initcaps()
-+
-         args = ['-n', '-v', '-x', '-L']
-         items = []
-         items6 = []
-@@ -470,6 +473,9 @@
-         if self.dryrun:
-             return False
- 
-+        # Initialize the capabilities database
-+        self.initcaps()
-+
-         prefix = "ufw"
-         exe = self.iptables
-         if v6:
-@@ -684,6 +690,9 @@
-         except Exception:
-             raise
- 
-+        # Initialize the capabilities database
-+        self.initcaps()
-+
-         chain_prefix = "ufw"
-         rules = self.rules
-         if v6:
-@@ -830,6 +839,10 @@
-         * updating user rules file
-         * reloading the user rules file if rule is modified
-         '''
-+
-+        # Initialize the capabilities database
-+        self.initcaps()
-+
-         rstr = ""
- 
-         if rule.v6:
-@@ -1073,6 +1086,9 @@
-         if self.dryrun:
-             return
- 
-+        # Initialize the capabilities database
-+        self.initcaps()
-+
-         rules_t = []
-         try:
-             rules_t = self._get_logging_rules(level)
-Index: ufw-0.33/src/backend.py
-===================================================================
---- ufw-0.33.orig/src/backend.py	2012-09-23 09:58:34.000000000 -0500
-+++ ufw-0.33/src/backend.py	2012-09-23 09:59:03.000000000 -0500
-@@ -21,7 +21,7 @@
- import stat
- import sys
- import ufw.util
--from ufw.util import warn, debug
-+from ufw.util import error, warn, debug
- from ufw.common import UFWError, config_dir, iptables_dir, UFWRule
- import ufw.applications
- 
-@@ -68,6 +68,17 @@
-             err_msg = _("Couldn't determine iptables version")
-             raise UFWError(err_msg)
- 
-+        # Initialize via initcaps only when we need it (LP: #1044361)
-+        self.caps = None
-+
-+    def initcaps(self):
-+        '''Initialize the capabilities database. This needs to be called
-+           before accessing the database.'''
-+
-+        # Only initialize if not initialized already
-+        if self.caps != None:
-+            return
-+
-         self.caps = {}
-         self.caps['limit'] = {}
- 
-@@ -78,14 +89,20 @@
-         # Try to get capabilities from the running system if root
-         if self.do_checks and os.getuid() == 0 and not self.dryrun:
-             # v4
--            nf_caps = ufw.util.get_netfilter_capabilities(self.iptables)
-+            try:
-+                nf_caps = ufw.util.get_netfilter_capabilities(self.iptables)
-+            except OSError as e:
-+                error("initcaps\n%s" % e)
-             if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
-                 self.caps['limit']['4'] = True
-             else:
-                 self.caps['limit']['4'] = False
- 
-             # v6
--            nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-+            try:
-+                nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-+            except OSError as e:
-+                error("initcaps\n%s" % e)
-             if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
-                 self.caps['limit']['6'] = True
-             else:
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch
deleted file mode 100644
index b259fdf..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Origin: r797
-Description: src/backend_iptables.py: fix misplaced parenthesis
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/src/backend_iptables.py
-===================================================================
---- ufw-0.33.orig/src/backend_iptables.py	2012-09-24 08:51:13.000000000 -0500
-+++ ufw-0.33/src/backend_iptables.py	2012-09-24 08:52:00.000000000 -0500
-@@ -1075,7 +1075,7 @@
-             exe = self.ip6tables
-         (rc, out) = cmd([exe] + args)
-         if rc != 0:
--            err_msg = _("Could not perform '%s'") % (args)
-+            err_msg = _("Could not perform '%s'" % (args))
-             if fail_ok:
-                 debug("FAILOK: " + err_msg)
-             else:
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch
new file mode 100644
index 0000000..556d445
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch
@@ -0,0 +1,73 @@
+From 42170d379eddc12bd2d1fe84dc268882d8eb4d64 Mon Sep 17 00:00:00 2001
+From: Silcet <camorga1@gmail.com>
+Date: Mon, 3 May 2021 08:59:28 +0000
+Subject: [PATCH] setup: only make one reference to env
+
+If sys.executable happens to be '/usr/bin/env python' or something
+similar, the setup script will result in 'ufw' getting /usr/bin/env
+repeated on the top line.  This causes an error at runtime.  Perform a
+quick sanity check on sys.executable before doing the substitution.
+
+While we're at it, change the default value of 'exe' to the one we either
+detected or specified on the build line.
+
+Upstream-Status: Inappropriate [ embedded specific ]
+
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+
+The patch was imported from the OpenEmbedded git server
+(git://git.openembedded.org/openembedded) as of commit id
+2cc1bd9dd060f5002c2fde7aacba86fe230c12af.
+
+A previous change had modified the way the python shebang was updated to
+follow the same version as the one used to call setup.py. However, it
+used a regex that was not matching anymore. To fix this, the regex
+condition is removed so the shebang line is substituted with the sys.executable
+value. Later in the installation distutils finds the string with the path
+of sys.executable and replaces it with "#! /usr/bin/env python3".
+
+Signed-off-by: Silcet <camorga1@gmail.com>
+---
+ setup.py | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 2343bc9..f8a638b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -64,7 +64,7 @@ class Install(_install, object):
+         real_sharedir = os.path.join(real_prefix, 'share', 'ufw')
+ 
+         # Update the modules' paths
+-        for fn in [ 'common.py' ]:
++        for fn in [ 'common.py', 'util.py' ]:
+             # 'staging' is used with just 'install' but build_lib is used when
+             # using 'build'. We could probably override 'def build()' but this
+             # at least works
+@@ -97,6 +97,12 @@ class Install(_install, object):
+                                  "-i",
+                                  "s%#SHARE_DIR#%" + real_sharedir + "%g",
+                                  f])
++                                
++                subprocess.call(["sed",
++                                 "-i.jjm",
++                                 "s%/sbin/iptables%" + iptables_exe + "%g",
++                                 f])
++
+ 
+                 if fn == 'common.py' and 'UFW_SKIP_CHECKS' in os.environ and \
+                    os.environ['UFW_SKIP_CHECKS'] != '':
+@@ -123,10 +129,12 @@ class Install(_install, object):
+             self.mkpath(os.path.dirname(f))
+ 
+         # update the interpreter to that of the one the user specified for setup
++        # Distutils searches for the string of sys.executable and replaces it 
++        # with the "#! /usr/bin/env pythonX" shebang on a later step
+         print("Updating staging/ufw to use %s" % (sys.executable))
+         subprocess.call(["sed",
+                          "-i",
+-                         "1s%^#.*python.*%#! /usr/bin/env " + sys.executable + "%g",
++                         "1s%/.*python.*%" + sys.executable + "%g",
+                          'staging/ufw'])
+         self.copy_file('staging/ufw', script)
+         self.copy_file('doc/ufw.8', manpage)
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch
deleted file mode 100644
index 695b265..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Origin: r803, r804
-Description: Don't call get_netfilter_capabilities() with ipv6 if ipv6 is
- disabled.
-Bug-Ubuntu: https://launchpad.net/ufw/bugs/1039729
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/src/backend.py
-===================================================================
---- ufw-0.33.orig/src/backend.py	2012-12-04 09:21:57.000000000 -0600
-+++ ufw-0.33/src/backend.py	2012-12-04 09:22:40.000000000 -0600
-@@ -98,15 +98,17 @@
-             else:
-                 self.caps['limit']['4'] = False
- 
--            # v6
--            try:
--                nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
--            except OSError as e:
--                error("initcaps\n%s" % e)
--            if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
--                self.caps['limit']['6'] = True
--            else:
--                self.caps['limit']['6'] = False
-+            # v6 (skip capabilities check for ipv6 if ipv6 is disabled in ufw
-+            # because the system may not have ipv6 support (LP: #1039729)
-+            if self.use_ipv6():
-+                try:
-+                    nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-+                except OSError as e:
-+                    error("initcaps\n%s" % e)
-+                if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
-+                    self.caps['limit']['6'] = True
-+                else:
-+                    self.caps['limit']['6'] = False
- 
-     def is_enabled(self):
-         '''Is firewall configured as enabled'''
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch
deleted file mode 100644
index b760d3f..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Origin: r816
-Description: add check for -m rt --rt-type 0
-Bug-Ubuntu: https://launchpad.net/bugs/1191197
-Forwarded: yes
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/tests/check-requirements
-===================================================================
---- ufw-0.33.orig/tests/check-requirements	2012-08-17 16:12:49.000000000 -0500
-+++ ufw-0.33/tests/check-requirements	2013-06-15 07:47:00.000000000 -0500
-@@ -3,7 +3,7 @@
- # check-requirements: verify all the required iptables functionality is
- # available
- #
--# Copyright 2008-2012 Canonical Ltd.
-+# Copyright 2008-2013 Canonical Ltd.
- #
- #    This program is free software: you can redistribute it and/or modify
- #    it under the terms of the GNU General Public License version 3,
-@@ -218,6 +218,9 @@
-             echo -n "icmpv6 with hl ($j): "
-             runcmd $exe -A $c -p icmpv6 --icmpv6-type $j -m hl --hl-eq 255 -j ACCEPT
-         done
-+
-+        echo -n "ipv6 rt: "
-+        runcmd $exe -A $c -m rt --rt-type 0 -j ACCEPT
-     fi
- 
-     echo ""
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch
deleted file mode 100644
index ff704b5..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From be53eea06a5655fdc98f47a73be8277b65bb42ed Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Tue, 11 Nov 2014 21:41:14 -0500
-Subject: [PATCH] setup: only make one reference to env
-
-If sys.executable happens to be '/usr/bin/env python' or something
-similar, the setup script will result in 'ufw' getting /usr/bin/env
-repeated on the top line.  This causes an error at runtime.  Perform a
-quick sanity check on sys.executable before doing the substitution.
-
-While we're at it, change the default value of 'exe' to the one we either
-detected or specified on the build line.
-
-Upstream-Status: Inappropriate [ embedded specific ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- setup.py | 34 ++++++++++++++++++++++++++++------
- 1 file changed, 28 insertions(+), 6 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index b13d11c..73acdef 100644
---- a/setup.py
-+++ b/setup.py
-@@ -64,7 +64,7 @@ class Install(_install, object):
-         real_sharedir = os.path.join(real_prefix, 'share', 'ufw')
- 
-         # Update the modules' paths
--        for file in [ 'common.py' ]:
-+        for file in [ 'common.py', 'util.py' ]:
-             print("Updating " + file)
-             subprocess.call(["sed",
-                              "-i",
-@@ -91,6 +91,11 @@ class Install(_install, object):
-                              "s%#SHARE_DIR#%" + real_sharedir + "%g",
-                              os.path.join('staging', file)])
- 
-+            subprocess.call(["sed",
-+                             "-i.jjm",
-+                             "s%/sbin/iptables%" + iptables_exe + "%g",
-+                             os.path.join('staging', file)])
-+
-         # Now byte-compile everything
-         super(Install, self).run()
- 
-@@ -107,12 +112,23 @@ class Install(_install, object):
-         for f in [ script, manpage, manpage_f ]:
-             self.mkpath(os.path.dirname(f))
- 
-+        # if sys.executable == /usr/bin/env python* the result will be the top
-+        # of ufw getting:
-+        #
-+        #  #! /usr/bin/env /usr/bin/env python
-+        #
-+        # which is not ideal
-+        #
-         # update the interpreter to that of the one the user specified for setup
--        print("Updating staging/ufw to use %s" % (sys.executable))
--        subprocess.call(["sed",
--                         "-i",
--                         "1s%^#.*python.*%#! /usr/bin/env " + sys.executable + "%g",
--                         'staging/ufw'])
-+        print("Updating staging/ufw to use (%s)" % (sys.executable))
-+
-+        if re.search("(/usr/bin/env)", sys.executable):
-+            print("found 'env' in sys.executable (%s)" % (sys.executable))
-+            subprocess.call(["sed",
-+                             "-i.jjm",
-+                             "1s%^#.*python.*%#! " + sys.executable + "%g",
-+                             'staging/ufw'])
-+
-         self.copy_file('staging/ufw', script)
-         self.copy_file('doc/ufw.8', manpage)
-         self.copy_file('doc/ufw-framework.8', manpage_f)
--- 
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.36.bb
similarity index 65%
rename from meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.36.bb
index 42fc262..8e35dc0 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.36.bb
@@ -1,3 +1,4 @@
+
 SUMMARY = "Uncomplicated Firewall"
 DESCRIPTION = "UFW stands for Uncomplicated Firewall, and is program for \
 managing a netfilter firewall. It provides a command line interface and aims \
@@ -7,23 +8,18 @@
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
 
-SRC_URI = " \
-           https://launchpad.net/ufw/0.33/0.33/+download/ufw-0.33.tar.gz \
-           file://setup-add-an-option-to-specify-iptables-location.patch \
-           file://setup-only-make-one-reference-to-env.patch \
+SRC_URI = "https://launchpad.net/ufw/0.36/0.36/+download/ufw-0.36.tar.gz \
            file://0001-optimize-boot.patch \
-           file://0002-lp1044361.patch \
-           file://0003-fix-typeerror-on-error.patch \
-           file://0004-lp1039729.patch \
-           file://0005-lp1191197.patch \
-"
+           file://0002-add-an-option-to-specify-iptables-location.patch \
+           file://0003-only-make-one-reference-to-env.patch \
+           "
 
 UPSTREAM_CHECK_URI = "https://launchpad.net/ufw"
 
-SRC_URI[md5sum] = "3747b453d76709e5a99da209fc0bb5f5"
-SRC_URI[sha256sum] = "5f85a8084ad3539b547bec097286948233188c971f498890316dec170bdd1da8"
+SRC_URI[md5sum] = "6d8ab1506da21ae003f4628f93d05781"
+SRC_URI[sha256sum] = "754b22ae5edff0273460ac9f57509c3938187e0cf4fb9692c6a02833fff33cfc"
 
-inherit setuptools3 features_check
+inherit setuptools3 features_check systemd update-rc.d
 
 RDEPENDS_${PN} = " \
                   iptables \
@@ -43,6 +39,19 @@
                      kernel-module-nf-recent \
 "
 
+do_install_append() {
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${S}/doc/systemd.example ${D}${systemd_unitdir}/system/ufw.service
+
+    install -d ${D}${sysconfdir}/init.d/
+    install -m 0755 ${S}/doc/initscript.example ${D}${sysconfdir}/init.d/ufw
+}
+
+SYSTEMD_SERVICE_${PN} = "ufw.service"
+
+INITSCRIPT_NAME = "ufw"
+INITSCRIPT_PARAMS = "defaults"
+
 # Certain items are explicitly put under /lib, not base_libdir when installed.
 #
 FILES_${PN} += " \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.1.bb
similarity index 93%
rename from meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.0.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.1.bb
index 83406f5..76a5fd7 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.7.1.bb
@@ -14,7 +14,7 @@
 
 SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https \
 "
-SRCREV = "830de9a9fb99e30f9ac9caa0a7f7bba29c3b4863"
+SRCREV = "95b91d89133a712a3d0f389442924612c103da24"
 S = "${WORKDIR}/git"
 
 inherit autotools
diff --git a/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
index 9816d4d..d888dd8 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
@@ -9,10 +9,10 @@
 Signed-off-By: Armin Kuster <akuster808@gmail.com>
 
 
-Index: proftpd-1.3.6/Make.rules.in
-===================================================================
---- proftpd-1.3.6.orig/Make.rules.in
-+++ proftpd-1.3.6/Make.rules.in
+diff --git a/Make.rules.in b/Make.rules.in
+index a5028ac..ccd7807 100644
+--- a/Make.rules.in
++++ b/Make.rules.in
 @@ -30,9 +30,9 @@ INSTALL=@INSTALL@
  INSTALL_STRIP=@INSTALL_STRIP@
  INSTALL_USER=@install_user@
@@ -26,11 +26,11 @@
  
  RM=rm -f
  SHELL=@CONFIG_SHELL@
-Index: proftpd-1.3.6/Makefile.in
-===================================================================
---- proftpd-1.3.6.orig/Makefile.in
-+++ proftpd-1.3.6/Makefile.in
-@@ -105,7 +105,6 @@ check: proftpd$(EXEEXT)
+diff --git a/Makefile.in b/Makefile.in
+index 9434cbd..13f2e16 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -123,7 +123,6 @@ check: proftpd$(EXEEXT)
  $(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8:
  	@if [ ! -d $@ ]; then \
  		mkdir -p $@; \
@@ -38,20 +38,20 @@
  		chmod 0755 $@; \
  	fi
  
-@@ -115,7 +114,6 @@ install-proftpd: proftpd $(DESTDIR)$(inc
+@@ -133,7 +132,6 @@ install-proftpd: proftpd$(EXEEXT) $(DESTDIR)$(includedir) $(DESTDIR)$(localstate
  		rm -f $(DESTDIR)$(sbindir)/in.proftpd ; \
  	fi
- 	ln -s proftpd $(DESTDIR)$(sbindir)/in.proftpd
+	ln -s $(top_builddir)/proftpd $(DESTDIR)$(sbindir)/in.proftpd
 -	-chown -h $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(sbindir)/in.proftpd
  
  install-libs: $(DESTDIR)$(libdir)/proftpd
  	cd lib/ && $(MAKE) install
-@@ -152,11 +150,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DE
- 	$(INSTALL_SBIN) ftpshut  $(DESTDIR)$(sbindir)/ftpshut
- 	$(INSTALL_BIN)  ftptop   $(DESTDIR)$(bindir)/ftptop
- 	$(INSTALL_BIN)  ftpwho   $(DESTDIR)$(bindir)/ftpwho
--	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs
-+	$(INSTALL) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs
+@@ -170,11 +168,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir)
+	$(INSTALL_SBIN) $(top_builddir)/ftpshut  $(DESTDIR)$(sbindir)/ftpshut
+	$(INSTALL_BIN)  $(top_builddir)/ftptop   $(DESTDIR)$(bindir)/ftptop
+	$(INSTALL_BIN)  $(top_builddir)/ftpwho   $(DESTDIR)$(bindir)/ftpwho
+-	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(top_builddir)/src/prxs $(DESTDIR)$(bindir)/prxs
++	$(INSTALL) -m 0755 $(top_builddir)/src/prxs $(DESTDIR)$(bindir)/prxs
  
  install-conf: $(DESTDIR)$(sysconfdir)
  	if [ ! -f $(DESTDIR)$(sysconfdir)/proftpd.conf ] ; then \
@@ -60,11 +60,11 @@
  		           $(top_srcdir)/sample-configurations/basic.conf \
  	       	           $(DESTDIR)$(sysconfdir)/proftpd.conf ; \
  	fi
-Index: proftpd-1.3.6/configure
-===================================================================
---- proftpd-1.3.6.orig/configure
-+++ proftpd-1.3.6/configure
-@@ -41777,7 +41777,7 @@ _ACEOF
+diff --git a/configure b/configure
+index 0a51670..69fa130 100755
+--- a/configure
++++ b/configure
+@@ -25116,7 +25116,7 @@ _ACEOF
  
  
  cat >>confdefs.h <<_ACEOF
@@ -73,7 +73,7 @@
  _ACEOF
  
  
-@@ -41787,7 +41787,7 @@ _ACEOF
+@@ -25126,7 +25126,7 @@ _ACEOF
  
  
  cat >>confdefs.h <<_ACEOF
@@ -82,11 +82,11 @@
  _ACEOF
  
  
-Index: proftpd-1.3.6/configure.in
-===================================================================
---- proftpd-1.3.6.orig/configure.in
-+++ proftpd-1.3.6/configure.in
-@@ -3833,8 +3833,8 @@ locale_dir="`eval echo ${locale_dir}`"
+diff --git a/configure.in b/configure.in
+index 50561de..93cad3f 100644
+--- a/configure.in
++++ b/configure.in
+@@ -4059,8 +4059,8 @@ locale_dir="`eval echo ${locale_dir}`"
  AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`", [Define the locale directory])
  
  AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`", [Define the run directory])
@@ -97,16 +97,3 @@
  
  prefix="$pr_saved_prefix"
  exec_prefix="$pr_saved_exec_prefix"
-Index: proftpd-1.3.6/lib/libcap/Makefile
-===================================================================
---- proftpd-1.3.6.orig/lib/libcap/Makefile
-+++ proftpd-1.3.6/lib/libcap/Makefile
-@@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES))
- all: $(LIBNAME)
- 
- _makenames: _makenames.c cap_names.sed
--	$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
-+	$(BUILD_CC) $(CFLAGS) $(LDFLAGS) $< -o $@
- 
- cap_names.h: _makenames
- 	./_makenames > cap_names.h
diff --git a/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch b/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch
index 7e2a8e3..96c237d 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/proftpd/files/contrib.patch
@@ -11,32 +11,29 @@
  2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/Makefile.in b/Makefile.in
-index 5b2e683..ee72fe1 100644
+index 9434cbd..8da7d1f 100644
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -120,7 +120,7 @@ install-modules: $(DESTDIR)$(libexecdir) $(DESTDIR)$(sysconfdir)
+@@ -163,7 +163,7 @@ install-modules: $(DESTDIR)$(libexecdir) $(DESTDIR)$(sysconfdir)
  	test -z "$(SHARED_MODULE_OBJS)" -a -z "$(SHARED_MODULE_DIRS)" -a -z "$(STATIC_MODULE_DIRS)" || (cd modules/ && $(MAKE) install)
  
  install-utils: $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir)
 -	cd contrib/ && $(MAKE) install-utils
 +	cd contrib/ && $(MAKE) DESTDIR=${DESTDIR} install-utils
- 	$(INSTALL_BIN)  ftpcount $(DESTDIR)$(bindir)/ftpcount
- 	$(INSTALL_BIN)  ftpdctl  $(DESTDIR)$(bindir)/ftpdctl
- 	$(INSTALL_SBIN) ftpscrub $(DESTDIR)$(sbindir)/ftpscrub
+	$(INSTALL_BIN)  $(top_builddir)/ftpcount $(DESTDIR)$(bindir)/ftpcount
+	$(INSTALL_BIN)  $(top_builddir)/ftpdctl  $(DESTDIR)$(bindir)/ftpdctl
+	$(INSTALL_SBIN) $(top_builddir)/ftpscrub $(DESTDIR)$(sbindir)/ftpscrub
 diff --git a/contrib/Makefile.in b/contrib/Makefile.in
-index 5bcc038..51d248c 100644
+index d1a31af..65d2abc 100644
 --- a/contrib/Makefile.in
 +++ b/contrib/Makefile.in
-@@ -18,6 +18,6 @@ Makefile: Makefile.in ../config.status
+@@ -17,6 +17,6 @@ Makefile: Makefile.in ../config.status
  	cd ../ && ./config.status
  
  install-utils:
--	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpasswd $(DESTDIR)$(bindir)/ftpasswd
--	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpmail $(DESTDIR)$(bindir)/ftpmail
--	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpquota $(DESTDIR)$(bindir)/ftpquota
-+	$(INSTALL) -m 0755 ftpasswd $(DESTDIR)$(bindir)/ftpasswd
-+	$(INSTALL) -m 0755 ftpmail $(DESTDIR)$(bindir)/ftpmail
-+	$(INSTALL) -m 0755 ftpquota $(DESTDIR)$(bindir)/ftpquota
--- 
-1.7.9.5
-
+-	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpasswd $(DESTDIR)$(bindir)/ftpasswd
+-	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpmail $(DESTDIR)$(bindir)/ftpmail
+-	$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpquota $(DESTDIR)$(bindir)/ftpquota
++	$(INSTALL) -m 0755 $(srcdir)/ftpasswd $(DESTDIR)$(bindir)/ftpasswd
++	$(INSTALL) -m 0755 $(srcdir)/ftpmail $(DESTDIR)$(bindir)/ftpmail
++	$(INSTALL) -m 0755 $(srcdir)/ftpquota $(DESTDIR)$(bindir)/ftpquota
diff --git a/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb b/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb
rename to meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb
index 1e4697a..f2a89e5 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7a.bb
@@ -4,7 +4,10 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184"
 
-SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \
+SRCREV = "715eadc1aa4f6b07d69f9d09558e9cb471e51d87"
+BRANCH = "1.3.7"
+
+SRC_URI = "git://github.com/proftpd/proftpd.git;branch=${BRANCH} \
            file://basic.conf.patch \
            file://proftpd-basic.init \
            file://default \
@@ -13,13 +16,14 @@
            file://build_fixup.patch \
            file://proftpd.service \
            "
-SRC_URI[md5sum] = "13270911c42aac842435f18205546a1b"
-SRC_URI[sha256sum] = "91ef74b143495d5ff97c4d4770c6804072a8c8eb1ad1ecc8cc541b40e152ecaf"
+
+S = "${WORKDIR}/git"
 
 inherit autotools-brokensep useradd update-rc.d systemd multilib_script
 
 PACKAGECONFIG ??= "shadow \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
+                   static \
                   "
 
 PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses"
@@ -28,6 +32,7 @@
 PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
 PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow"
 PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre "
+PACKAGECONFIG[static] = "--enable-static=yes, --enable-static=no"
 
 # enable POSIX.1e capabilities
 PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap"
@@ -58,14 +63,12 @@
 #omit mod_auth_file from core modules
 PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file"
 
-
 # proftpd uses libltdl which currently makes configuring using
 # autotools.bbclass a pain...
 do_configure () {
     install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
     install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
     oe_runconf
-    cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}/libtool
 }
 
 FTPUSER = "ftp"
@@ -109,6 +112,7 @@
 
     sed -e 's|--sysroot=${STAGING_DIR_HOST}||g' \
         -e 's|${STAGING_DIR_NATIVE}||g' \
+        -e 's|-ffile-prefix-map=[^ ]*||g' \
         -e 's|-fdebug-prefix-map=[^ ]*||g' \
         -e 's|-fmacro-prefix-map=[^ ]*||g' \
         -i ${D}/${bindir}/prxs
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20201112.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20201112.bb
rename to meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb
index 64958a7..0525b41 100644
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20201112.bb
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20210219.bb
@@ -1,6 +1,6 @@
 require wireguard.inc
 
-SRCREV = "fe402261666821514377d06c2c68ed9bc19e7634"
+SRCREV = "122f06bfd8fc7b06a0899fa9adc4ce8e06900d98"
 
 SRC_URI = "git://git.zx2c4.com/wireguard-linux-compat"
 
@@ -31,3 +31,4 @@
 # OE-core post dunfell has moved to use kernel 5.8 which now means we cant build this module in world builds
 # for reference machines e.g. qemu
 EXCLUDE_FROM_WORLD = "1"
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.9.2.bb b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.9.2.bb
rename to meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb
index a7d7fc8..5af4c31 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.9.2.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.10.bb
@@ -13,7 +13,7 @@
 LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
 
 SRC_URI = "git://github.com/jech/babeld.git;protocol=git"
-SRCREV = "a1043879225ac205614259b480d7f577025d8bb0"
+SRCREV = "dbb8799d1b5b3bfaf4387386c92369c847704480"
 
 UPSTREAM_CHECK_GITTAGREGEX = "babeld-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb
index d9040c1..de0aeee 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.bb
@@ -120,6 +120,7 @@
     sed    -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
         -i ${D}${bindir}/net-snmp-create-v3-user
     sed -e 's@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g' \
+        -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
         -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
         -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
         -e 's@[^ ]*--sysroot=[^ "]*@@g' \
@@ -172,6 +173,7 @@
             -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \
             -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \
             -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \
+            -e "s@-ffile-prefix-map=${SNMP_DBGDIR}@-ffile-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
             -e "s@-fdebug-prefix-map=${SNMP_DBGDIR}@-fdebug-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
             -e "s@-fdebug-prefix-map= -fdebug-prefix-map=@-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
                   -fdebug-prefix-map=${STAGING_DIR_HOST}=@g" \
diff --git a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.12.bb b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.13.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.12.bb
rename to meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.13.bb
index c68b474..41a9b8e 100644
--- a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.12.bb
+++ b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.13.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPLv3 & LGPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRCREV = "73008e3292e4d46fde3eab5d5f618886210ec4a1"
+SRCREV = "464a60344a324311a6f5bb326fdf5f422a3c9005"
 SRC_URI = "git://git.samba.org/cifs-utils.git"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.84.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.84.bb
deleted file mode 100644
index 3dd9154..0000000
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.84.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require dnsmasq.inc
-
-SRC_URI[dnsmasq-2.84.md5sum] = "6bf24b5bcf9293db2941fbdb545c1133"
-SRC_URI[dnsmasq-2.84.sha256sum] = "4caf385376f34fae5c55244a1f870dcf6f90e037bb7c4487210933dc497f9c36"
-SRC_URI += "\
-    file://lua.patch \
-"
-
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.85.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.85.bb
new file mode 100644
index 0000000..023dda3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.85.bb
@@ -0,0 +1,8 @@
+require dnsmasq.inc
+
+SRC_URI[dnsmasq-2.85.md5sum] = "4079e1e6e1065e4bd14ded268cdd7bd7"
+SRC_URI[dnsmasq-2.85.sha256sum] = "f36b93ecac9397c15f461de9b1689ee5a2ed6b5135db0085916233053ff3f886"
+SRC_URI += "\
+    file://lua.patch \
+"
+
diff --git a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.18.bb b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.19.bb
similarity index 83%
rename from meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.18.bb
rename to meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.19.bb
index 7254a47..aead5e9 100644
--- a/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.18.bb
+++ b/meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.4.19.bb
@@ -6,13 +6,13 @@
 RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC."
 SECTION = "mail"
 LICENSE = "GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=06a8d16599e1d0b131390bec01fb571c"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ad73c6bd421c137fbf18cf8b92474186"
 
 DEPENDS = "openssl"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \
            "
-SRC_URI[sha256sum] = "302dc9bcdc6927dedf375d2baaead2347557faa70d98b1da83f2409fa6fb259f"
+SRC_URI[sha256sum] = "cd8d11a3d103e50caa2ec64bcda6307eb3d0783a4d4dfd88e668b81aaf9d6b5f"
 
 inherit autotools gettext python3-dir python3native
 
diff --git a/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.5.bb b/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.6.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.5.bb
rename to meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.6.bb
index a6070cc..067911b 100644
--- a/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.5.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.25.6.bb
@@ -12,7 +12,7 @@
 SRC_URI = "git://github.com/libguestfs/nbdkit.git;protocol=https \
 "
 
-SRCREV = "c828c6d48ff6b69454cad98054a1920d03c4b4c7"
+SRCREV = "023dac3e09a0e39d6f91dea4b7f8efb8f5faae36"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch
new file mode 100644
index 0000000..3ad3b4a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch
@@ -0,0 +1,562 @@
+From 408e7dfaf2eb735804f62728de679972867c30d5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 3 May 2021 13:53:10 -0700
+Subject: [PATCH] replace __pure__ with compiler attribute 'pure'
+
+Remove defining __deprecated__
+
+Upstream-Status: OE-Specific [Untested with dietlibc]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ byte.h     |  22 ++++++----
+ critbit.h  |  12 ++++--
+ fmt.h      | 100 +++++++++++++++++++++++---------------------
+ str.h      |  22 ++++++----
+ stralloc.h |  20 +++++----
+ 5 files changed, 103 insertions(+), 73 deletions(-)
+
+--- a/byte.h
++++ b/byte.h
+@@ -2,6 +2,16 @@
+ #ifndef BYTE_H
+ #define BYTE_H
+ 
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
++#endif
++
+ /* for size_t: */
+ #include <stddef.h>
+ 
+@@ -9,17 +19,13 @@
+ extern "C" {
+ #endif
+ 
+-#ifndef __pure__
+-#define __pure__
+-#endif
+-
+ /* byte_chr returns the smallest integer i between 0 and len-1
+  * inclusive such that one[i] equals needle, or len if not found. */
+-size_t byte_chr(const void* haystack, size_t len, char needle) __pure__;
++size_t byte_chr(const void* haystack, size_t len, char needle) __PURE;
+ 
+ /* byte_rchr returns the largest integer i between 0 and len-1 inclusive
+  * such that one[i] equals needle, or len if not found. */
+-size_t byte_rchr(const void* haystack,size_t len,char needle) __pure__;
++size_t byte_rchr(const void* haystack,size_t len,char needle) __PURE;
+ 
+ /* byte_copy copies in[0] to out[0], in[1] to out[1], ... and in[len-1]
+  * to out[len-1]. */
+@@ -34,14 +40,14 @@ void byte_copyr(void* out, size_t len, c
+  * than, equal to, or greater than the string b[0], b[1], ...,
+  * b[len-1]. When the strings are different, byte_diff does not read
+  * bytes past the first difference. */
+-int byte_diff(const void* a, size_t len, const void* b) __pure__;
++int byte_diff(const void* a, size_t len, const void* b) __PURE;
+ 
+ /* byte_zero sets the bytes out[0], out[1], ..., out[len-1] to 0 */
+ void byte_zero(void* out, size_t len);
+ 
+ #define byte_equal(s,n,t) (!byte_diff((s),(n),(t)))
+ 
+-int byte_equal_notimingattack(const void* a, size_t len,const void* b) __pure__;
++int byte_equal_notimingattack(const void* a, size_t len,const void* b) __PURE;
+ 
+ #if defined(__i386__) || defined(__x86_64__)
+ #define UNALIGNED_ACCESS_OK
+--- a/critbit.h
++++ b/critbit.h
+@@ -8,15 +8,21 @@ extern "C" {
+ /* for __pure__ if we are compiling under dietlibc */
+ #include <stddef.h>
+ 
+-#ifndef __pure__
+-#define __pure__
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
+ #endif
+ 
+ typedef struct {
+   void *root;
+ } critbit0_tree;
+ 
+-int critbit0_contains(critbit0_tree *t, const char *u) __pure__;
++int critbit0_contains(critbit0_tree *t, const char *u) __PURE;
+ int critbit0_insert(critbit0_tree *t, const char *u);
+ int critbit0_delete(critbit0_tree *t, const char *u);
+ void critbit0_clear(critbit0_tree *t);
+--- a/fmt.h
++++ b/fmt.h
+@@ -2,6 +2,16 @@
+ #ifndef FMT_H
+ #define FMT_H
+ 
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
++#endif
++
+ /* for size_t: */
+ #include <stddef.h>
+ /* for uint32_t */
+@@ -15,10 +25,6 @@
+ extern "C" {
+ #endif
+ 
+-#ifndef __pure__
+-#define __pure__
+-#endif
+-
+ #define FMT_LONG  41 /* enough space to hold -2^127 in decimal, plus \0 */
+ #define FMT_ULONG 40 /* enough space to hold 2^128 - 1 in decimal, plus \0 */
+ #define FMT_8LONG 44 /* enough space to hold 2^128 - 1 in octal, plus \0 */
+@@ -46,31 +52,31 @@ extern "C" {
+ /* convert signed src integer -23 to ASCII '-','2','3', return number of
+  * bytes of value in output format (3 in this example).
+  * If dest is not NULL, write result to dest */
+-size_t fmt_long(char *dest,signed long src) __pure__;
++size_t fmt_long(char *dest,signed long src) __PURE;
+ 
+ /* convert unsigned src integer 23 to ASCII '2','3', return number of
+  * bytes of value in output format (2 in this example).
+  * If dest is not NULL, write result to dest */
+-size_t fmt_ulong(char *dest,unsigned long src) __pure__;
++size_t fmt_ulong(char *dest,unsigned long src) __PURE;
+ 
+ /* convert unsigned src integer 0x23 to ASCII '2','3', return number of
+  * bytes of value in output format (2 in this example).
+  * If dest is not NULL, write result to dest */
+-size_t fmt_xlong(char *dest,unsigned long src) __pure__;
++size_t fmt_xlong(char *dest,unsigned long src) __PURE;
+ 
+ /* convert unsigned src integer 023 to ASCII '2','3', return number of
+  * bytes of value in output format (2 in this example).
+  * If dest is not NULL, write result to dest */
+-size_t fmt_8long(char *dest,unsigned long src) __pure__;
++size_t fmt_8long(char *dest,unsigned long src) __PURE;
+ 
+ /* like fmt_long but for long long */
+-size_t fmt_longlong(char *dest,signed long long src) __pure__;
++size_t fmt_longlong(char *dest,signed long long src) __PURE;
+ 
+ /* like fmt_ulong but for unsigned long long */
+-size_t fmt_ulonglong(char *dest,unsigned long long src) __pure__;
++size_t fmt_ulonglong(char *dest,unsigned long long src) __PURE;
+ 
+ /* like fmt_xlong but for unsigned long long */
+-size_t fmt_xlonglong(char *dest,unsigned long long src) __pure__;
++size_t fmt_xlonglong(char *dest,unsigned long long src) __PURE;
+ 
+ #define fmt_uint(dest,src) fmt_ulong(dest,src)
+ #define fmt_int(dest,src) fmt_long(dest,src)
+@@ -81,22 +87,22 @@ size_t fmt_xlonglong(char *dest,unsigned
+  * Does not truncate! */
+ /* fmt_ulong0(buf,23,4) -> '0','0','2','3' return 4 */
+ /* fmt_ulong0(buf,234,2) -> '2','3','4', return 3 */
+-size_t fmt_ulong0(char *,unsigned long src,size_t padto) __pure__;
++size_t fmt_ulong0(char *,unsigned long src,size_t padto) __PURE;
+ 
+ #define fmt_uint0(buf,src,padto) fmt_ulong0(buf,src,padto)
+ 
+ /* convert src double 1.7 to ASCII '1','.','7', return length.
+  * If dest is not NULL, write result to dest */
+-size_t fmt_double(char *dest, double d,int max,int prec) __pure__;
++size_t fmt_double(char *dest, double d,int max,int prec) __PURE;
+ 
+ /* if src is negative, write '-' and return 1.
+  * if src is positive, write '+' and return 1.
+  * otherwise return 0 */
+-size_t fmt_plusminus(char *dest,int src) __pure__;
++size_t fmt_plusminus(char *dest,int src) __PURE;
+ 
+ /* if src is negative, write '-' and return 1.
+  * otherwise return 0. */
+-size_t fmt_minus(char *dest,int src) __pure__;
++size_t fmt_minus(char *dest,int src) __PURE;
+ 
+ /* copy str to dest until \0 byte, return number of copied bytes. */
+ /* fmt_str(NULL,str) == strlen(str) */
+@@ -108,11 +114,11 @@ size_t fmt_minus(char *dest,int src) __p
+  * This is more efficient because strcat needs to scan the string to
+  * find the end and append.
+  */
+-size_t fmt_str(char *dest,const char *src) __pure__;
++size_t fmt_str(char *dest,const char *src) __PURE;
+ 
+ /* copy str to dest until \0 byte or limit bytes copied.
+  * return number of copied bytes. */
+-size_t fmt_strn(char *dest,const char *src,size_t limit) __pure__;
++size_t fmt_strn(char *dest,const char *src,size_t limit) __PURE;
+ 
+ /* copy n bytes from src to dest, return n */
+ static inline size_t fmt_copybytes(char* dest,const char* src,size_t n) {
+@@ -124,56 +130,56 @@ static inline size_t fmt_copybytes(char*
+  * write padlen-srclen spaces, if that is >= 0.  Then copy srclen
+  * characters from src.  Truncate only if total length is larger than
+  * maxlen.  Return number of characters written. */
+-size_t fmt_pad(char* dest,const char* src,size_t srclen,size_t padlen,size_t maxlen) __pure__;
++size_t fmt_pad(char* dest,const char* src,size_t srclen,size_t padlen,size_t maxlen) __PURE;
+ 
+ /* "foo" -> "foo  "
+  * append padlen-srclen spaces after dest, if that is >= 0.  Truncate
+  * only if total length is larger than maxlen.  Return number of
+  * characters written. */
+-size_t fmt_fill(char* dest,size_t srclen,size_t padlen,size_t maxlen) __pure__;
++size_t fmt_fill(char* dest,size_t srclen,size_t padlen,size_t maxlen) __PURE;
+ 
+ /* 1 -> "1", 4900 -> "4.9k", 2300000 -> "2.3M" */
+-size_t fmt_human(char* dest,unsigned long long l) __pure__;
++size_t fmt_human(char* dest,unsigned long long l) __PURE;
+ 
+ /* 1 -> "1", 4900 -> "4.8k", 2300000 -> "2.2M" */
+-size_t fmt_humank(char* dest,unsigned long long l) __pure__;
++size_t fmt_humank(char* dest,unsigned long long l) __PURE;
+ 
+ /* "Sun, 06 Nov 1994 08:49:37 GMT" */
+ size_t fmt_httpdate(char* dest,time_t t);	/* not marked pure because it calls gmtime */
+ 
+ /* "2014-05-27T19:22:16.247Z" */
+-size_t fmt_iso8601(char* dest,time_t t) __pure__;
++size_t fmt_iso8601(char* dest,time_t t) __PURE;
+ 
+ #define FMT_UTF8 5
+ #define FMT_ASN1LENGTH 17 /* enough space to hold 2^128-1 */
+ #define FMT_ASN1TAG 19 /* enough space to hold 2^128-1 */
+ 
+ /* some variable length encodings for integers */
+-size_t fmt_utf8(char* dest,uint32_t n) __pure__;	/* can store 0-0x7fffffff */
+-size_t fmt_asn1derlength(char* dest,unsigned long long l) __pure__;	/* 0-0x7f: 1 byte, above that 1+bytes_needed bytes */
+-size_t fmt_asn1dertag(char* dest,unsigned long long l) __pure__;	/* 1 byte for each 7 bits; upper bit = more bytes coming */
++size_t fmt_utf8(char* dest,uint32_t n) __PURE;	/* can store 0-0x7fffffff */
++size_t fmt_asn1derlength(char* dest,unsigned long long l) __PURE;	/* 0-0x7f: 1 byte, above that 1+bytes_needed bytes */
++size_t fmt_asn1dertag(char* dest,unsigned long long l) __PURE;	/* 1 byte for each 7 bits; upper bit = more bytes coming */
+ 
+ /* Google Protocol Buffers, https://developers.google.com/protocol-buffers/docs/encoding */
+-size_t fmt_varint(char* dest,unsigned long long l) __pure__;	/* protocol buffers encoding; like asn1dertag but little endian */
+-size_t fmt_pb_tag(char* dest,size_t fieldno,unsigned char type) __pure__;	/* protocol buffer tag */
+-size_t fmt_pb_type0_int(char* dest,unsigned long long l) __pure__;	/* protocol buffers encoding: type 0 bool/enum/int32/uint32/int64/uint64 */
+-size_t fmt_pb_type0_sint(char* dest,signed long long l) __pure__;/* protocol buffers encoding: type 0 sint32/sint64 */
+-size_t fmt_pb_type1_double(char* dest,double d) __pure__;	/* protocol buffers encoding: double (64-bit little endian blob) */
+-size_t fmt_pb_type1_fixed64(char* dest,uint64_t l) __pure__;	/* protocol buffers encoding: 64-bit little endian blob */
++size_t fmt_varint(char* dest,unsigned long long l) __PURE;	/* protocol buffers encoding; like asn1dertag but little endian */
++size_t fmt_pb_tag(char* dest,size_t fieldno,unsigned char type) __PURE;	/* protocol buffer tag */
++size_t fmt_pb_type0_int(char* dest,unsigned long long l) __PURE;	/* protocol buffers encoding: type 0 bool/enum/int32/uint32/int64/uint64 */
++size_t fmt_pb_type0_sint(char* dest,signed long long l) __PURE;/* protocol buffers encoding: type 0 sint32/sint64 */
++size_t fmt_pb_type1_double(char* dest,double d) __PURE;	/* protocol buffers encoding: double (64-bit little endian blob) */
++size_t fmt_pb_type1_fixed64(char* dest,uint64_t l) __PURE;	/* protocol buffers encoding: 64-bit little endian blob */
+ 
+ /* fmt_pb_type2_string can return 0 if (s,l) is clearly invalid */
+-size_t fmt_pb_type2_string(char* dest,const char* s,size_t l) __pure__;	/* protocol buffers encoding: varint length + blob */
+-size_t fmt_pb_type5_float(char* dest,float f) __pure__;		/* protocol buffers encoding: float (32-bit little endian blob) */
+-size_t fmt_pb_type5_fixed32(char* dest,uint32_t l) __pure__;	/* protocol buffers encoding: 32-bit little endian blob */
+-
+-size_t fmt_pb_int(char* dest,size_t fieldno,unsigned long long l) __pure__;
+-size_t fmt_pb_sint(char* dest,size_t fieldno,signed long long l) __pure__;
+-size_t fmt_pb_double(char* dest,size_t fieldno,double d) __pure__;
+-size_t fmt_pb_float(char* dest,size_t fieldno,float f) __pure__;
+-size_t fmt_pb_string(char* dest,size_t fieldno,const char* s,size_t l) __pure__;
++size_t fmt_pb_type2_string(char* dest,const char* s,size_t l) __PURE;	/* protocol buffers encoding: varint length + blob */
++size_t fmt_pb_type5_float(char* dest,float f) __PURE;		/* protocol buffers encoding: float (32-bit little endian blob) */
++size_t fmt_pb_type5_fixed32(char* dest,uint32_t l) __PURE;	/* protocol buffers encoding: 32-bit little endian blob */
++
++size_t fmt_pb_int(char* dest,size_t fieldno,unsigned long long l) __PURE;
++size_t fmt_pb_sint(char* dest,size_t fieldno,signed long long l) __PURE;
++size_t fmt_pb_double(char* dest,size_t fieldno,double d) __PURE;
++size_t fmt_pb_float(char* dest,size_t fieldno,float f) __PURE;
++size_t fmt_pb_string(char* dest,size_t fieldno,const char* s,size_t l) __PURE;
+ 
+ /* fmt_netstring can return 0 if (src,len) is clearly invalid */
+-size_t fmt_netstring(char* dest,const char* src,size_t len) __pure__;
++size_t fmt_netstring(char* dest,const char* src,size_t len) __PURE;
+ 
+ /* Marshaling helper functions.
+  * Escape one character, no matter if it needs escaping or not.
+@@ -185,27 +191,27 @@ size_t fmt_netstring(char* dest,const ch
+  * unicode codepoint) may be limited to 0x7f, 0xff or 0x10ffff. */
+ 
+ /* XML escaping: '&' -> '&amp;', '<' -> '&lt;', 'ö' -> '&#xf6;' */
+-size_t fmt_escapecharxml(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharxml(char* dest,uint32_t ch) __PURE;
+ /* HTML escaping is the same as XML escaping. */
+-size_t fmt_escapecharhtml(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharhtml(char* dest,uint32_t ch) __PURE;
+ 
+ /* JSON escaping: '\' -> '\\', '"' -> '\"', 'ö' -> '\u00f6' */
+-size_t fmt_escapecharjson(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharjson(char* dest,uint32_t ch) __PURE;
+ 
+ /* MIME quoted-printable escaping: 'ö' -> '=f6', characters > 0xff not supported */
+-size_t fmt_escapecharquotedprintable(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharquotedprintable(char* dest,uint32_t ch) __PURE;
+ 
+ /* MIME quoted-printable escaping with UTF-8: 'ö' -> '=c3=b6', characters > 0x7fffffff not supported */
+-size_t fmt_escapecharquotedprintableutf8(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharquotedprintableutf8(char* dest,uint32_t ch) __PURE;
+ 
+ /* C99 style escaping: '\' -> '\\', newline -> '\n', 0xc2 -> '\302' */
+-size_t fmt_escapecharc(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharc(char* dest,uint32_t ch) __PURE;
+ 
+ /* internal functions, may be independently useful */
+ char fmt_tohex(char c) __attribute__((__const__));
+ 
+ #define fmt_strm(b,...) fmt_strm_internal(b,__VA_ARGS__,(char*)0)
+-size_t fmt_strm_internal(char* dest,...) __pure__;
++size_t fmt_strm_internal(char* dest,...) __PURE;
+ 
+ #ifndef MAX_ALLOCA
+ #define MAX_ALLOCA 100000
+--- a/str.h
++++ b/str.h
+@@ -8,8 +8,14 @@
+ extern "C" {
+ #endif
+ 
+-#ifndef __pure__
+-#define __pure__
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
+ #endif
+ 
+ /* str_copy copies leading bytes from in to out until \0.
+@@ -21,7 +27,7 @@ size_t str_copy(char *out,const char *in
+  * equal to, or greater than the string b[0], b[1], ..., b[m-1]=='\0'.
+  * If the strings are different, str_diff does not read bytes past the
+  * first difference. */
+-int str_diff(const char *a,const char *b) __pure__;
++int str_diff(const char *a,const char *b) __PURE;
+ 
+ /* str_diffn returns negative, 0, or positive, depending on whether the
+  * string a[0], a[1], ..., a[n]=='\0' is lexicographically smaller than,
+@@ -29,24 +35,24 @@ int str_diff(const char *a,const char *b
+  * If the strings are different, str_diffn does not read bytes past the
+  * first difference. The strings will be considered equal if the first
+  * limit characters match. */
+-int str_diffn(const char *a,const char *b,size_t limit) __pure__;
++int str_diffn(const char *a,const char *b,size_t limit) __PURE;
+ 
+ #ifdef __dietlibc__
+ #include <string.h>
+ #define str_len(foo) strlen(foo)
+ #else
+ /* str_len returns the index of \0 in s */
+-size_t str_len(const char *s) __pure__;
++size_t str_len(const char *s) __PURE;
+ #endif
+ 
+ /* str_chr returns the index of the first occurance of needle or \0 in haystack */
+-size_t str_chr(const char *haystack,char needle) __pure__;
++size_t str_chr(const char *haystack,char needle) __PURE;
+ 
+ /* str_rchr returns the index of the last occurance of needle or \0 in haystack */
+-size_t str_rchr(const char *haystack,char needle) __pure__;
++size_t str_rchr(const char *haystack,char needle) __PURE;
+ 
+ /* str_start returns 1 if the b is a prefix of a, 0 otherwise */
+-int str_start(const char *a,const char *b) __pure__;
++int str_start(const char *a,const char *b) __PURE;
+ 
+ /* convenience shortcut to test for string equality */
+ #define str_equal(s,t) (!str_diff((s),(t)))
+--- a/stralloc.h
++++ b/stralloc.h
+@@ -2,16 +2,22 @@
+ #ifndef STRALLOC_H
+ #define STRALLOC_H
+ 
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
++#endif
++
+ #include <stddef.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#ifndef __pure__
+-#define __pure__
+-#endif
+-
+ /* stralloc is the internal data structure all functions are working on.
+  * s is the string.
+  * len is the used length of the string.
+@@ -101,17 +107,17 @@ static inline int stralloc_APPEND(strall
+ /* stralloc_starts returns 1 if the \0-terminated string in "in", without
+  * the terminating \0, is a prefix of the string stored in sa. Otherwise
+  * it returns 0. sa must already be allocated. */
+-int stralloc_starts(stralloc* sa,const char* in) __pure__;
++int stralloc_starts(stralloc* sa,const char* in) __PURE;
+ 
+ /* stralloc_diff returns negative, 0, or positive, depending on whether
+  * a is lexicographically smaller than, equal to, or greater than the
+  * string b. */
+-int stralloc_diff(const stralloc* a,const stralloc* b) __pure__;
++int stralloc_diff(const stralloc* a,const stralloc* b) __PURE;
+ 
+ /* stralloc_diffs returns negative, 0, or positive, depending on whether
+  * a is lexicographically smaller than, equal to, or greater than the
+  * string b[0], b[1], ..., b[n]=='\0'. */
+-int stralloc_diffs(const stralloc* a,const char* b) __pure__;
++int stralloc_diffs(const stralloc* a,const char* b) __PURE;
+ 
+ #define stralloc_equal(a,b) (!stralloc_diff((a),(b)))
+ #define stralloc_equals(a,b) (!stralloc_diffs((a),(b)))
+--- a/scan.h
++++ b/scan.h
+@@ -15,8 +15,14 @@
+ extern "C" {
+ #endif
+ 
+-#ifndef __pure__
+-#define __pure__
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
+ #endif
+ 
+ /* This file declared functions used to decode / scan / unmarshal
+@@ -84,18 +90,18 @@ size_t scan_double(const char *in, doubl
+ size_t scan_plusminus(const char *src,signed int *dest);
+ 
+ /* return the highest integer n<=limit so that isspace(in[i]) for all 0<=i<=n */
+-size_t scan_whitenskip(const char *in,size_t limit) __pure__;
++size_t scan_whitenskip(const char *in,size_t limit) __PURE;
+ 
+ /* return the highest integer n<=limit so that !isspace(in[i]) for all 0<=i<=n */
+-size_t scan_nonwhitenskip(const char *in,size_t limit) __pure__;
++size_t scan_nonwhitenskip(const char *in,size_t limit) __PURE;
+ 
+ /* return the highest integer n<=limit so that in[i] is element of
+  * charset (ASCIIZ string) for all 0<=i<=n */
+-size_t scan_charsetnskip(const char *in,const char *charset,size_t limit) __pure__;
++size_t scan_charsetnskip(const char *in,const char *charset,size_t limit) __PURE;
+ 
+ /* return the highest integer n<=limit so that in[i] is not element of
+  * charset (ASCIIZ string) for all 0<=i<=n */
+-size_t scan_noncharsetnskip(const char *in,const char *charset,size_t limit) __pure__;
++size_t scan_noncharsetnskip(const char *in,const char *charset,size_t limit) __PURE;
+ 
+ /* try to parse ASCII GMT date; does not understand time zones. */
+ /* example dates:
+@@ -103,17 +109,17 @@ size_t scan_noncharsetnskip(const char *
+  *   "Sunday, 06-Nov-94 08:49:37 GMT"
+  *   "Sun Nov  6 08:49:37 1994"
+  */
+-size_t scan_httpdate(const char *in,time_t *t) __pure__;
++size_t scan_httpdate(const char *in,time_t *t) __PURE;
+ 
+ /* try to parse ASCII ISO-8601 date; does not understand time zones. */
+ /* example date: "2014-05-27T19:22:16Z" */
+-size_t scan_iso8601(const char* in,struct timespec* t) __pure__;
++size_t scan_iso8601(const char* in,struct timespec* t) __PURE;
+ 
+ /* some variable length encodings for integers */
+-size_t scan_utf8(const char* in,size_t len,uint32_t* n) __pure__;
+-size_t scan_utf8_sem(const char* in,size_t len,uint32_t* n) __pure__;
+-size_t scan_asn1derlength(const char* in,size_t len,unsigned long long* n) __pure__;
+-size_t scan_asn1dertag(const char* in,size_t len,unsigned long long* n) __pure__;
++size_t scan_utf8(const char* in,size_t len,uint32_t* n) __PURE;
++size_t scan_utf8_sem(const char* in,size_t len,uint32_t* n) __PURE;
++size_t scan_asn1derlength(const char* in,size_t len,unsigned long long* n) __PURE;
++size_t scan_asn1dertag(const char* in,size_t len,unsigned long long* n) __PURE;
+ 
+ /* Google protocol buffers */
+ /* A protocol buffer is a sequence of (tag,value).
+@@ -121,16 +127,16 @@ size_t scan_asn1dertag(const char* in,si
+  *   which field in your struct is being sent. Integers must have type
+  *   0, double type 1, strings type 2 and floats type 5. However, you
+  *   have to check this yourself.
+- */ 
+-size_t scan_varint(const char* in,size_t len, unsigned long long* n) __pure__;	/* internal */
+-size_t scan_pb_tag(const char* in,size_t len, size_t* fieldno,unsigned char* type) __pure__;
++ */
++size_t scan_varint(const char* in,size_t len, unsigned long long* n) __PURE;	/* internal */
++size_t scan_pb_tag(const char* in,size_t len, size_t* fieldno,unsigned char* type) __PURE;
+ 
+ /* Then, depending on the field number, validate the type and call the
+  * corresponding of these functions to parse the value */
+-size_t scan_pb_type0_int(const char* in,size_t len,unsigned long long* l) __pure__;
+-size_t scan_pb_type0_sint(const char* in,size_t len,signed long long* l) __pure__;
+-size_t scan_pb_type1_double(const char* in,size_t len,double* d) __pure__;
+-size_t scan_pb_type1_fixed64(const char* in,size_t len,uint64_t* b) __pure__;
++size_t scan_pb_type0_int(const char* in,size_t len,unsigned long long* l) __PURE;
++size_t scan_pb_type0_sint(const char* in,size_t len,signed long long* l) __PURE;
++size_t scan_pb_type1_double(const char* in,size_t len,double* d) __PURE;
++size_t scan_pb_type1_fixed64(const char* in,size_t len,uint64_t* b) __PURE;
+ /* NOTE: scan_pb_type2_stringlen only parses the length of the string,
+  * not the string itself. It will return the number of bytes parsed in
+  * the length, then set slen to the value of the length integer it just
+@@ -141,9 +147,9 @@ size_t scan_pb_type1_fixed64(const char*
+  * parsing early without having to read and allocate memory for the rest
+  * (potentially gigabytes) of the data announced by one unreasonable
+  * string length value. */
+-size_t scan_pb_type2_stringlen(const char* in,size_t len,const char** string, size_t* slen) __pure__;
+-size_t scan_pb_type5_float(const char* in,size_t len,float* f) __pure__;
+-size_t scan_pb_type5_fixed32(const char* in,size_t len,uint32_t* b) __pure__;
++size_t scan_pb_type2_stringlen(const char* in,size_t len,const char** string, size_t* slen) __PURE;
++size_t scan_pb_type5_float(const char* in,size_t len,float* f) __PURE;
++size_t scan_pb_type5_fixed32(const char* in,size_t len,uint32_t* b) __PURE;
+ 
+ /* parse a netstring, input buffer is in (len bytes).
+  * if parsing is successful:
+@@ -153,7 +159,7 @@ size_t scan_pb_type5_fixed32(const char*
+  *   return 0
+  * Note: *dest will point inside the input buffer!
+  */
+-size_t scan_netstring(const char* in,size_t len,char** dest,size_t* slen) __pure__;
++size_t scan_netstring(const char* in,size_t len,char** dest,size_t* slen) __PURE;
+ 
+ /* internal function that might be useful independently */
+ /* convert from hex ASCII, return 0 to 15 for success or -1 for failure */
+--- a/scan/scan_httpdate.c
++++ b/scan/scan_httpdate.c
+@@ -1,5 +1,4 @@
+ #define _GNU_SOURCE
+-#define __deprecated__
+ #include "scan.h"
+ #include "byte.h"
+ #include "case.h"
+--- a/scan/scan_iso8601.c
++++ b/scan/scan_iso8601.c
+@@ -1,5 +1,4 @@
+ #define _GNU_SOURCE
+-#define __deprecated__
+ #include "scan.h"
+ #include "byte.h"
+ #include "case.h"
diff --git a/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb
index d2f4df7..ec24578 100644
--- a/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.32.bb
@@ -8,6 +8,7 @@
 
 SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz \
            file://0001-Depend-on-haveuint128.h-for-umult64.c.patch \
+           file://0001-replace-__pure__-with-compiler-attribute-pure.patch \
           "
 SRC_URI[md5sum] = "ee015ccf45cb2bc61c942642038c2bdc"
 SRC_URI[sha256sum] = "f4b9b3d9922dc25bc93adedf9e9ff8ddbebaf623f14c8e7a5f2301bfef7998c1"
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.1.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.2.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.1.bb
rename to meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.2.bb
index 6aa7b17..f82107d 100644
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.5.2.bb
@@ -14,8 +14,8 @@
 
 UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
 
-SRC_URI[md5sum] = "b1c279e89d97849d5fcde31d76812f04"
-SRC_URI[sha256sum] = "e9582b8e9457994bd8d50012be82c23b2f465da51460c9b2360a81da0f4e06e6"
+SRC_URI[md5sum] = "7643f135b49aee49df7d83c1f434dc4e"
+SRC_URI[sha256sum] = "b9d295988b34e39964ac475b619c3585d667b36c350cf1adec19e5e3c843ba11"
 
 SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
 SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.2.bb b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.2.bb
index dd50fba..c178b4c 100644
--- a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.9.2.bb
@@ -24,7 +24,7 @@
 
 EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
 
-PACKAGECONFIG ??= "curl gmp openssl sqlite3 swanctl \
+PACKAGECONFIG ?= "curl gmp openssl sqlite3 swanctl \
         ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-charon', 'charon', d)} \
 "
 PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
index 91508d7..af99edc 100644
--- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
+++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
@@ -1,14 +1,14 @@
-From b71eb384522b5ce4629dee6e8be257fb4880fef3 Mon Sep 17 00:00:00 2001
-From: Benjamin Gaignard <benjamin.gaignard@linaro.org>
+From b71eb384522b5ce4629dee6e8be257fb4880fef3 Mon Sep 17 00:00:00 2001 
+From: Benjamin Gaignard <benjamin.gaignard@linaro.org> 
 Date: Thu, 20 Apr 2017 14:25:18 +0200
 
 ---
- Makefile.am  | 1 -
- configure.ac | 9 ---------
- 2 files changed, 10 deletions(-)
+ Makefile.am  |  1 -
+ configure.ac | 17 -----------------
+ 2 files changed, 18 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index e9113c2..2fe3d54 100644
+index 4a3ead6..a12cb98 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -2,7 +2,6 @@ SUBDIRS = \
@@ -17,24 +17,32 @@
  	etc \
 -	docs \
  	m4macros \
- 	tests
- 
+ 	tests \
+ 	scripts
 diff --git a/configure.ac b/configure.ac
-index 48ee0b2..a1a5fa1 100644
+index 3849383..9f3a633 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -194,10 +194,6 @@ AC_SUBST(ADDITIONAL_OBJECTS)
- AC_PATH_PROG(XSLTPROC, xsltproc, no)
- AM_CONDITIONAL(HAVE_XSLTPROC, test "x$XSLTPROC" != "xno")
+@@ -190,18 +190,6 @@ AC_SUBST(CPPFLAGS)
+ AC_SUBST(LIBS)
+ AC_SUBST(ADDITIONAL_OBJECTS)
  
--# Check for asciidoc
--AC_PATH_PROG(A2X, a2x, no)
--AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno")
+-if test x"$manpage_support_enabled" = x"yes"; then
+-AC_PATH_PROG(POD2MAN, pod2man, no)
 -
- # checking xmllint
- AC_PATH_PROG(XMLLINT, xmllint, no)
- if test "x$XMLLINT" != "xno"; then
-@@ -219,11 +215,6 @@ src/Makefile
+-if test "x$POD2MAN" = "xno" && \
+- ! test -e docs/man5/tinyproxy.conf.5 -a -e docs/man8/tinyproxy.8 ; then
+-AC_MSG_ERROR([
+-  manpage generation requested, but neither pod2man
+-  nor pre-generated manpages found.
+-  Use --disable-manpage-support if you want to compile anyway.])
+-fi
+-fi #manpage_support_enabled
+-
+ AM_CONDITIONAL(HAVE_POD2MAN, test "x$POD2MAN" != "x" -a "x$POD2MAN" != "xno")
+ 
+ AC_PATH_PROG(GPERF, gperf, no)
+@@ -226,11 +214,6 @@ src/Makefile
  data/Makefile
  data/templates/Makefile
  etc/Makefile
@@ -46,3 +54,6 @@
  m4macros/Makefile
  tests/Makefile
  tests/scripts/Makefile
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.0.bb
similarity index 89%
rename from meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb
rename to meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.0.bb
index 82d6701..7fb2927 100644
--- a/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.10.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.0.bb
@@ -9,8 +9,8 @@
            file://tinyproxy.conf \
            "
 
-SRC_URI[md5sum] = "423047c8dc53a15e19f78e238198549c"
-SRC_URI[sha256sum] = "6020955e6a0ef0ef898ad5bb17a448c47f9e4c003c464b4ae7c4dba063272055"
+SRC_URI[md5sum] = "658db5558ffb849414341b756a546a99"
+SRC_URI[sha256sum] = "20f74769e40144e4d251d2977cc4c40d2d428a2bec8c1b8709cd07315454baef"
 
 UPSTREAM_CHECK_URI = "https://github.com/tinyproxy/tinyproxy/releases"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.4.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.5.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.4.bb
rename to meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.5.bb
index b75f418..f440328 100644
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.4.bb
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.4.5.bb
@@ -19,7 +19,7 @@
 
 UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
 
-SRC_URI[sha256sum] = "729cd11e9715c600e5ad74ca472bacf8af32c20902192d5f2b271268511d4d29"
+SRC_URI[sha256sum] = "de1aafd100a1e1207c850d180e97dd91ab8da0f5eb6beec545f725cdb145d333"
 
 PE = "1"