reset upstream subtrees to HEAD

Reset the following subtrees on HEAD:
  poky: 8217b477a1(master)
  meta-xilinx: 64aa3d35ae(master)
  meta-openembedded: 0435c9e193(master)
  meta-raspberrypi: 490a4441ac(master)
  meta-security: cb6d1c85ee(master)

Squashed patches:
  meta-phosphor: drop systemd 239 patches
  meta-phosphor: mrw-api: use correct install path

Change-Id: I268e2646d9174ad305630c6bbd3fbc1a6105f43d
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openembedded/meta-networking/MAINTAINERS b/meta-openembedded/meta-networking/MAINTAINERS
index 945ee86..5c4c4ce 100644
--- a/meta-openembedded/meta-networking/MAINTAINERS
+++ b/meta-openembedded/meta-networking/MAINTAINERS
@@ -2,12 +2,38 @@
 
 Please submit any patches against meta-networking to the OpenEmbedded
 development mailing list (openembedded-devel@lists.openembedded.org) with
-'[meta-networking][thud]' in the subject.
+'[meta-networking]' in the subject.
 
 When sending single patches, please use something like:
 
    git send-email -1 -M \
         --to openembedded-devel@lists.openembedded.org \
-        --subject-prefix=meta-networking][thud][PATCH
+        --subject-prefix=meta-networking][PATCH
 
-Thud Maintainer:      Armin Kuster <akuster808@gmail.com>
+You may also contact the maintainers directly.
+
+Descriptions of section entries:
+
+        M: Mail patches to: FullName <address@domain>
+        F: Files and directories with wildcard patterns.
+           A trailing slash includes all files and subdirectory files.
+           F: recipes-devtools/    all files in and below recipes-devtools
+           F: recipes-selinux/*    all files in recipes-selinux, but not below
+           One pattern per line.  Multiple F: lines acceptable.
+
+Please keep this list in alphabetical order.
+
+Maintainers List (try to look for most precise areas first)
+
+COMMON
+M:      Khem Raj <raj.khem@gmail.com>
+M:      "Joe MacDonald (backup)" <joe@deserted.net>
+L:      openembedded-devel@lists.openembedded.org
+Q:      https://patchwork.openembedded.org/project/oe/
+S:      Maintained
+F:      conf
+F:      recipes-*
+
+NETKIT
+M:      Armin Kuster <akuster808@gmail.com>
+F:      recipes-netkit
diff --git a/meta-openembedded/meta-networking/README b/meta-openembedded/meta-networking/README
index 7a4aca4..e1ba27d 100644
--- a/meta-openembedded/meta-networking/README
+++ b/meta-openembedded/meta-networking/README
@@ -18,19 +18,19 @@
 This layer depends on:
 
 URI: git://github.com/openembedded/openembedded-core.git
-branch: thud
+branch: master
 revision: HEAD
 
 For some recipes, the meta-oe layer is required:
 
 URI: git://github.com/openembedded/meta-openembedded.git
 subdirectory: meta-oe
-branch: thud
+branch: master
 revision: HEAD
 
 URI: git://github.com/openembedded/meta-openembedded.git
 subdirectory: meta-python
-branch: thud
+branch: master
 revision: HEAD
 
 Maintenance
diff --git a/meta-openembedded/meta-networking/conf/layer.conf b/meta-openembedded/meta-networking/conf/layer.conf
index d36ff5b..67f58bc 100644
--- a/meta-openembedded/meta-networking/conf/layer.conf
+++ b/meta-openembedded/meta-networking/conf/layer.conf
@@ -17,7 +17,7 @@
 LAYERDEPENDS_networking-layer += "openembedded-layer"
 LAYERDEPENDS_networking-layer += "meta-python"
 
-LAYERSERIES_COMPAT_networking-layer = "thud"
+LAYERSERIES_COMPAT_networking-layer = "thud warrior"
 
 LICENSE_PATH += "${LAYERDIR}/licenses"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch
deleted file mode 100644
index 8653302..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb/0001-undefine-macro-before-redefining.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 59f65235a7a690f50d1686e9977908c053697d8c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 28 Aug 2018 22:59:13 -0700
-Subject: [PATCH] undefine macro before redefining
-
-Fixes
-src/main.c:89:9: error: 'printf' macro redefined [-Werror,-Wmacro-redefined]
-
-Upstream-Stats: Submitted [https://github.com/civetweb/civetweb/pull/649]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/main.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/main.c b/src/main.c
-index bbcb0aec..01191a3c 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -86,6 +86,7 @@
- 
- #include "civetweb.h"
- 
-+#undef printf
- #define printf                                                                 \
- 	DO_NOT_USE_THIS_FUNCTION__USE_fprintf /* Required for unit testing */
- 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
index d681f7f..c8fe24c 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
@@ -4,11 +4,10 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f28fdcba0dda735eed62bac6a397562"
 
-SRCREV = "19f31ba8dd8443e86c7028a4b4c37f4b299aa68c"
-PV = "1.10+git${SRCPV}"
+SRCREV = "ce8f6d38a60eb16c996afee1e5340f76ef4d0923"
+PV = "1.11+git${SRCPV}"
 SRC_URI = "git://github.com/civetweb/civetweb.git \
            file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \
-           file://0001-undefine-macro-before-redefining.patch \
            "
 
 S = "${WORKDIR}/git"
@@ -36,7 +35,7 @@
 PACKAGECONFIG[cpp] = "-DCIVETWEB_ENABLE_CXX=ON,-DCIVETWEB_ENABLE_CXX=OFF,"
 PACKAGECONFIG[debug] = "-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=ON,-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=OFF,"
 PACKAGECONFIG[ipv6] = "-DCIVETWEB_ENABLE_IPV6=ON,-DCIVETWEB_ENABLE_IPV6=OFF,"
-PACKAGECONFIG[server] = "-DCIVETWEB_INSTALL_EXECUTABLE=ON,-DCIVETWEB_INSTALL_EXECUTABLE=OFF,"
+PACKAGECONFIG[server] = "-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=ON -DCIVETWEB_INSTALL_EXECUTABLE=ON,-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=OFF -DCIVETWEB_INSTALL_EXECUTABLE=OFF,"
 PACKAGECONFIG[ssl] = "-DCIVETWEB_ENABLE_SSL=ON -DCIVETWEB_SSL_OPENSSL_API_1_1=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF,-DCIVETWEB_ENABLE_SSL=OFF,openssl (=1.0.2%),"
 PACKAGECONFIG[websockets] = "-DCIVETWEB_ENABLE_WEBSOCKETS=ON,-DCIVETWEB_ENABLE_WEBSOCKETS=OFF,"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb
index d5d2ab6..c93905e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb
@@ -4,10 +4,7 @@
 LICENSE = "copyleft-next-0.3.0"
 LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe"
 
-DEPENDS = "python-m2crypto-native python-typing-native python-native libnl \
-           ${@oe.utils.conditional("DEFAULT_CRYPT", "gcrypt", "libgcrypt", "", d)} \
-           ${@oe.utils.conditional("DEFAULT_CRYPT", "openssl", "openssl10", "", d)} \
-          "
+DEPENDS = "python-m2crypto-native python-typing-native python-native libnl libgcrypt"
 
 SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \
            file://do-not-run-ldconfig-if-destdir-is-set.patch \
@@ -23,13 +20,9 @@
 
 inherit python-dir pythonnative siteinfo
 
-# "gcrypt" or "openssl"
-DEFAULT_CRYPT ??= "gcrypt"
-
 # Recursive make problem
 EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg' \
                 UDEV_RULE_DIR=${nonarch_libdir}/udev/rules.d/"
-EXTRA_OEMAKE_append = " ${@oe.utils.conditional("DEFAULT_CRYPT", "openssl", "USE_OPENSSL=1", "", d)}"
 TARGET_BITS = "${SITEINFO_BITS}"
 export TARGET_BITS
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_7.0.8.bb
similarity index 70%
rename from meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_7.0.8.bb
index 885c6c0..84c3db7 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_7.0.8.bb
@@ -5,12 +5,14 @@
 HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/"
 
 LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://dhcpcd.c;endline=26;md5=77c40d671aff804ca91ea99556da8e9b"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1e8f17e4edcccc38152ccf60374e0f89"
 
 SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz"
 
-SRC_URI[md5sum] = "2465624b62c1154f0e89dc69c42c849b"
-SRC_URI[sha256sum] = "6f9674dc7e27e936cc787175404a6171618675ecfb6903ab9887b1b66a87d69e"
+SRC_URI[md5sum] = "77bbb1d73b6f30d6ddcc8b0fd3eae266"
+SRC_URI[sha256sum] = "96968e883369ab4afd11eba9dfd9bb109f5dfff65b2814ce6c432f36362dc9b5"
+
+SRC_URI += "file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch"
 
 inherit autotools-brokensep
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch
new file mode 100644
index 0000000..37d2344
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch
@@ -0,0 +1,45 @@
+From aa9e3982c1e75ad49945a62f5e262279c7a905a4 Mon Sep 17 00:00:00 2001
+From: Stefano Cappa <stefano.cappa.ks89@gmail.com>
+Date: Sun, 13 Jan 2019 01:50:52 +0100
+Subject: [PATCH] remove INCLUDEDIR to prevent build issues
+
+Upstream-Status: Pending
+
+Signed-off-by: Stefano Cappa <stefano.cappa.ks89@gmail.com>
+---
+ configure | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/configure b/configure
+index 6c81e0db..32dea2b4 100755
+--- a/configure
++++ b/configure
+@@ -20,7 +20,6 @@ BUILD=
+ HOST=
+ HOSTCC=
+ TARGET=
+-INCLUDEDIR=
+ DEBUG=
+ FORK=
+ STATIC=
+@@ -72,7 +71,6 @@ for x do
+ 	--mandir) MANDIR=$var;;
+ 	--datadir) DATADIR=$var;;
+ 	--with-ccopts|CFLAGS) CFLAGS=$var;;
+-	-I|--includedir) INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }-I$var";;
+ 	CC) CC=$var;;
+ 	CPPFLAGS) CPPFLAGS=$var;;
+ 	PKG_CONFIG) PKG_CONFIG=$var;;
+@@ -309,9 +307,6 @@ if [ -n "$CPPFLAGS" ]; then
+ 	echo "CPPFLAGS=" >>$CONFIG_MK
+ 	echo "CPPFLAGS+=	$CPPFLAGS" >>$CONFIG_MK
+ fi
+-if [ -n "$INCLUDEDIR" ]; then
+-	echo "CPPFLAGS+=	$INCLUDEDIR" >>$CONFIG_MK
+-fi
+ if [ -n "$LDFLAGS" ]; then
+ 	echo "LDFLAGS=" >>$CONFIG_MK
+ 	echo "LDFLAGS+=	$LDFLAGS" >>$CONFIG_MK
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler/0001-linux-port-Rename-pthread_mutex_t-variable-lock.patch b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler/0001-linux-port-Rename-pthread_mutex_t-variable-lock.patch
new file mode 100644
index 0000000..346a56a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler/0001-linux-port-Rename-pthread_mutex_t-variable-lock.patch
@@ -0,0 +1,74 @@
+From 630086cf1b3fba71822319a268d3711734cd6aa8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Jan 2019 12:56:13 -0800
+Subject: [PATCH] linux-port: Rename pthread_mutex_t variable 'lock'
+
+lock is also used by libc++ in std namespace and using it here causes
+clang to fail e.g.
+
+dibbler-client.cpp:47:25: error: reference to 'lock' is ambiguous
+    pthread_mutex_lock(&lock);
+                        ^
+../../../../../../../workspace/sources/dibbler/Port-linux/dibbler-client.cpp:29:26: note: candidate found by name lookup is 'lock'
+extern ::pthread_mutex_t lock;
+                         ^
+/mnt/a/yoe/build/tmp/work/aarch64-yoe-linux/dibbler/1.0.1+1.0.2RC1+gitc4b0ed52e751da7823dd9a36e91f93a6310e5525-r0/recipe-sysroot/usr/include/c++/v1/mutex:446:1: note: candidate found by name lookup is 'std::__1::lock'
+lock(_L0& __l0, _L1& __l1, _L2& __l2, _L3& ...__l3)
+
+Upstream-Status: Submitted [https://github.com/tomaszmrugalski/dibbler/pull/37]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Port-linux/dibbler-client.cpp          | 6 +++---
+ Port-linux/lowlevel-linux-link-state.c | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/Port-linux/dibbler-client.cpp b/Port-linux/dibbler-client.cpp
+index 78f34241..b5ebb9f0 100644
+--- a/Port-linux/dibbler-client.cpp
++++ b/Port-linux/dibbler-client.cpp
+@@ -26,7 +26,7 @@ using namespace std;
+ 
+ #define IF_RECONNECTED_DETECTED -1
+ 
+-extern pthread_mutex_t lock;
++extern pthread_mutex_t dibbler_lock;
+ 
+ TDHCPClient* ptr = 0;
+ 
+@@ -44,8 +44,8 @@ void signal_handler(int n) {
+ #ifdef MOD_CLNT_CONFIRM
+ void signal_handler_of_linkstate_change(int n) {
+     Log(Notice) << "Network switch off event detected. initiating CONFIRM." << LogEnd;
+-    pthread_mutex_lock(&lock);
+-    pthread_mutex_unlock(&lock);
++    pthread_mutex_lock(&dibbler_lock);
++    pthread_mutex_unlock(&dibbler_lock);
+ }
+ #endif
+ 
+diff --git a/Port-linux/lowlevel-linux-link-state.c b/Port-linux/lowlevel-linux-link-state.c
+index 76293ea1..e6b94063 100644
+--- a/Port-linux/lowlevel-linux-link-state.c
++++ b/Port-linux/lowlevel-linux-link-state.c
+@@ -34,7 +34,7 @@ volatile int * notifier = 0;
+ int isDone = 0;
+ pthread_t parent_id;
+ pthread_t ntid;
+-pthread_mutex_t lock;
++pthread_mutex_t dibbler_lock;
+ 
+ struct state {
+     int id;
+@@ -86,9 +86,9 @@ void link_state_changed(int ifindex)
+     {
+ 	if (changed_links->cnt<16)
+ 	    changed_links->ifindex[changed_links->cnt++] = ifindex;
+-	pthread_mutex_lock(&lock);
++	pthread_mutex_lock(&dibbler_lock);
+ 	*notifier = 1; /* notify that change has occured */
+-	pthread_mutex_unlock(&lock);
++	pthread_mutex_unlock(&dibbler_lock);
+ 	pthread_kill(parent_id,SIGUSR1);
+     } else
+     {
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 8890e14..90051a3 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
@@ -9,7 +9,8 @@
 
 SRC_URI = "git://github.com/tomaszmrugalski/dibbler \
            file://dibbler_fix_getSize_crash.patch \
-          "
+           file://0001-linux-port-Rename-pthread_mutex_t-variable-lock.patch \
+           "
 PV = "1.0.1+1.0.2RC1+git${SRCREV}"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/0001-fix-building-in-a-separate-directory-outside-the-sou.patch b/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/0001-fix-building-in-a-separate-directory-outside-the-sou.patch
new file mode 100644
index 0000000..3f34ff2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/0001-fix-building-in-a-separate-directory-outside-the-sou.patch
@@ -0,0 +1,77 @@
+firewalld: fix building in a separate directory outside the source tree
+
+Upstream-Status: Submitted [https://github.com/firewalld/firewalld/pull/456]
+Signed-off-by: Dan Callaghan <dan.callaghan@opengear.com>
+
+diff --git a/config/Makefile.am b/config/Makefile.am
+index 7048d2ee..5270d408 100644
+--- a/config/Makefile.am
++++ b/config/Makefile.am
+@@ -377,11 +377,11 @@ install-config:
+ 	$(MKDIR_P) $(DESTDIR)$(sconfdir)/zones
+ 	$(MKDIR_P) $(DESTDIR)$(sconfdir)/helpers
+ 	$(MKDIR_P) $(DESTDIR)$(prefixlibdir)
+-	cp -r icmptypes $(DESTDIR)$(prefixlibdir)
+-	cp -r ipsets $(DESTDIR)$(prefixlibdir)
+-	cp -r services $(DESTDIR)$(prefixlibdir)
+-	cp -r zones $(DESTDIR)$(prefixlibdir)
+-	cp -r helpers $(DESTDIR)$(prefixlibdir)
++	cp -r $(srcdir)/icmptypes $(DESTDIR)$(prefixlibdir)
++	cp -r $(srcdir)/ipsets $(DESTDIR)$(prefixlibdir)
++	cp -r $(srcdir)/services $(DESTDIR)$(prefixlibdir)
++	cp -r $(srcdir)/zones $(DESTDIR)$(prefixlibdir)
++	cp -r $(srcdir)/helpers $(DESTDIR)$(prefixlibdir)
+ 
+ uninstall-config:
+ 	rmdir $(DESTDIR)$(sconfdir)/icmptypes
+diff --git a/doc/xml/Makefile.am b/doc/xml/Makefile.am
+index 8c93ab9c..d0313e3e 100644
+--- a/doc/xml/Makefile.am
++++ b/doc/xml/Makefile.am
+@@ -69,7 +69,8 @@ edit = sed \
+ 	-e 's|\@PREFIX\@|$(prefix)|' \
+ 	-e 's|\@SYSCONFDIR\@|$(sysconfdir)|' \
+ 	-e 's|\@PACKAGE_STRING\@|$(PACKAGE_STRING)|' \
+-	-e 's|\@IFCFGDIR\@|$(IFCFGDIR)|'
++	-e 's|\@IFCFGDIR\@|$(IFCFGDIR)|' \
++	-e 's|@SRCDIR@|$(srcdir)|'
+ 
+ transform-man.xsl: transform-man.xsl.in
+ 	$(edit) $< >$@
+diff --git a/doc/xml/firewall-cmd.xml.in b/doc/xml/firewall-cmd.xml.in
+index c2606553..24d77858 100644
+--- a/doc/xml/firewall-cmd.xml.in
++++ b/doc/xml/firewall-cmd.xml.in
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="utf-8"?>
+ <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+ [
+-<!ENTITY authors SYSTEM "authors.xml">
+-<!ENTITY seealso SYSTEM "seealso.xml">
+-<!ENTITY notes SYSTEM "notes.xml">
++<!ENTITY authors SYSTEM "@SRCDIR@/authors.xml">
++<!ENTITY seealso SYSTEM "@SRCDIR@/seealso.xml">
++<!ENTITY notes SYSTEM "@SRCDIR@/notes.xml">
+ <!ENTITY errorcodes SYSTEM "errorcodes.xml">
+ ]>
+ 
+diff --git a/doc/xml/firewalld.xml.in b/doc/xml/firewalld.xml.in
+index de802059..3d319b04 100644
+--- a/doc/xml/firewalld.xml.in
++++ b/doc/xml/firewalld.xml.in
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="utf-8"?>
+ <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+ [
+-<!ENTITY authors SYSTEM "authors.xml">
+-<!ENTITY seealso SYSTEM "seealso.xml">
+-<!ENTITY notes SYSTEM "notes.xml">
++<!ENTITY authors SYSTEM "@SRCDIR@/authors.xml">
++<!ENTITY seealso SYSTEM "@SRCDIR@/seealso.xml">
++<!ENTITY notes SYSTEM "@SRCDIR@/notes.xml">
+ ]>
+ 
+ <!--
+-- 
+2.20.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/firewalld.init b/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/firewalld.init
new file mode 100644
index 0000000..08e8930
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/firewalld/files/firewalld.init
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides: firewalld
+# Required-Start: $syslog $local_fs messagebus
+# Required-Stop: 
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: 
+# Description: 
+### END INIT INFO
+
+. /etc/init.d/functions
+
+firewalld=/usr/sbin/firewalld
+pidfile=/var/run/firewalld.pid
+
+case "$1" in
+    start)
+        echo -n "Starting firewalld: "
+        start-stop-daemon --start --quiet --exec $firewalld
+        echo "."
+        ;;
+    stop)
+        echo -n "Stopping firewalld: "
+        start-stop-daemon --stop --quiet --pidfile $pidfile
+        echo "."
+        ;;
+    restart)
+        echo -n "Stopping firewalld: "
+        start-stop-daemon --stop --quiet --pidfile $pidfile
+        echo "."
+        echo -n "Starting firewalld: "
+        start-stop-daemon --start --quiet --exec $firewalld
+        echo "."
+        ;;
+    reload)
+        echo -n "Reloading firewalld: "
+        firewall-cmd --reload
+        echo "."
+        ;;
+    status)
+        firewall-cmd --state
+        ;;
+    *)
+        echo "Usage: /etc/init.d/firewalld {start|stop|restart|reload|status}" >&2
+        exit 1
+esac
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/firewalld/firewalld_0.6.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/firewalld/firewalld_0.6.3.bb
new file mode 100644
index 0000000..e999fa7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/firewalld/firewalld_0.6.3.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Dynamic firewall daemon with a D-Bus interface"
+HOMEPAGE = "https://firewalld.org/"
+BUGTRACKER = "https://github.com/firewalld/firewalld/issues"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/firewalld/firewalld/archive/v${PV}.tar.gz \
+           file://firewalld.init \
+           file://0001-fix-building-in-a-separate-directory-outside-the-sou.patch \
+"
+SRC_URI[md5sum] = "5ef954d9b6b244ffeabcd226be1867a0"
+SRC_URI[sha256sum] = "039ad56ea6d6553aadf33243ea5b39802d73519e46a89c80c648b2bd1ec78aeb"
+
+# glib-2.0-native is needed for GSETTINGS_RULES autoconf macro from gsettings.m4
+# xmlto-native is needed to populate /etc/xml/catalog.xml in the sysroot so that xsltproc finds the docbook xslt
+DEPENDS = "intltool-native glib-2.0-native libxslt-native docbook-xsl-stylesheets-native xmlto-native"
+
+inherit gettext autotools bash-completion python3native gsettings systemd update-rc.d
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_unitdir}/system/,--disable-systemd"
+
+# iptables, ip6tables, ebtables, and ipset *should* be unnecessary
+# when the nftables backend is available, because nftables supersedes all of them.
+# However we still need iptables and ip6tables to be available otherwise any
+# application relying on "direct passthrough" rules (such as docker) will break.
+# /etc/sysconfig/firewalld is a Red Hat-ism, only referenced by
+# the Red Hat-specific init script which we aren't using, so we disable that.
+EXTRA_OECONF = "\
+    --with-nft=${sbindir}/nft \
+    --without-ipset \
+    --with-iptables=${sbindir}/iptables \
+    --with-iptables-restore=${sbindir}/iptables-restore \
+    --with-ip6tables=${sbindir}/ip6tables \
+    --with-ip6tables-restore=${sbindir}/ip6tables-restore \
+    --without-ebtables \
+    --without-ebtables-restore \
+    --disable-sysconfig \
+"
+
+INITSCRIPT_NAME = "firewalld"
+SYSTEMD_SERVICE = "firewalld.service"
+
+do_install_append() {
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        :
+    else
+        # firewalld ships an init script but it contains Red Hat-isms, replace it with our own
+        rm -rf ${D}${sysconfdir}/rc.d/
+        install -d ${D}${sysconfdir}/init.d
+        install -m0755 ${WORKDIR}/firewalld.init ${D}${sysconfdir}/init.d/firewalld
+    fi
+
+    # We ran ./configure with PYTHON pointed at the binary inside $STAGING_BINDIR_NATIVE
+    # so now we need to fix up any references to point at the proper path in the image.
+    # This hack is also in distutils.bbclass, but firewalld doesn't use distutils/setuptools.
+    if [ ${PN} != "${BPN}-native" ]; then
+        sed -i -e s:${STAGING_BINDIR_NATIVE}/python3-native/python3:${bindir}/python3:g \
+            ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml
+    fi
+    sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g \
+        ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml
+}
+
+FILES_${PN} += "\
+    ${PYTHON_SITEPACKAGES_DIR}/firewall \
+    ${datadir}/polkit-1 \
+    ${datadir}/metainfo \
+"
+
+RDEPENDS_${PN} = "\
+    nftables \
+    iptables \
+    python3-core \
+    python3-io \
+    python3-fcntl \
+    python3-shell \
+    python3-syslog \
+    python3-xml \
+    python3-dbus \
+    python3-slip-dbus \
+    python3-decorator \
+    python3-pygobject \
+"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
index 899c4e4..8dae0df 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
@@ -6,7 +6,6 @@
 Type=forking
 PIDFile=@STATEDIR@/run/radiusd/radiusd.pid
 ExecStartPre=-@BASE_BINDIR@/chown -R radiusd.radiusd @STATEDIR@/run/radiusd
-ExecStartPre=-@BASE_BINDIR@/sh -c "if [ ! -f @SYSCONFDIR@/raddb/certs/server.pem ]; then sudo -u radiusd @SYSCONFDIR@/raddb/certs/bootstrap; fi"
 ExecStartPre=@SBINDIR@/radiusd -C
 ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/raddb
 ExecReload=@SBINDIR@/radiusd -C
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb
index c17d56d..5ab9a3f 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.17.bb
@@ -68,6 +68,7 @@
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
                    pcre libcap \
+                   openssl rlm-eap-fast rlm-eap-pwd \
 "
 
 PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5"
@@ -83,6 +84,9 @@
 PACKAGECONFIG[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python"
 PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c"
 PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
+PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl"
+PACKAGECONFIG[rlm-eap-fast] = "--with-rlm_eap_fast, --without-rlm_eap_fast"
+PACKAGECONFIG[rlm-eap-pwd] = "--with-rlm_eap_pwd, --without-rlm_eap_pwd"
 
 inherit useradd autotools-brokensep update-rc.d systemd
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch
deleted file mode 100644
index d4764f5..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Upstream-Status: Pending
-
-Subject: rcp: fix to work with large files
-
-When we copy file by rcp command, if the file > 2GB, it will fail.
-The cause is that it used incorrect data type on file size in sink() of rcp.
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/rcp.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/rcp.c b/src/rcp.c
-index 21f55b6..bafa35f 100644
---- a/src/rcp.c
-+++ b/src/rcp.c
-@@ -876,9 +876,9 @@ sink (int argc, char *argv[])
-   enum
-   { YES, NO, DISPLAYED } wrerr;
-   BUF *bp;
--  off_t i, j;
-+  off_t i, j, size;
-   int amt, count, exists, first, mask, mode, ofd, omode;
--  int setimes, size, targisdir, wrerrno;
-+  int setimes, targisdir, wrerrno;
-   char ch, *cp, *np, *targ, *vect[1], buf[BUFSIZ];
-   const char *why;
- 
--- 
-1.9.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch
deleted file mode 100644
index 24c134f..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html
-
-Upstream-Status: Pending
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- ping/ping_common.h | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/ping/ping_common.h b/ping/ping_common.h
-index 1dfd1b5..3bfbd12 100644
---- a/ping/ping_common.h
-+++ b/ping/ping_common.h
-@@ -17,10 +17,14 @@
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see `http://www.gnu.org/licenses/'. */
- 
-+#include <config.h>
-+
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
-+#ifdef HAVE_IPV6
- #include <netinet/icmp6.h>
-+#endif
- #include <icmp.h>
- #include <error.h>
- #include <progname.h>
-@@ -62,7 +66,12 @@ struct ping_stat
-    want to follow the traditional behaviour of ping.  */
- #define DEFAULT_PING_COUNT 0
- 
-+#ifdef HAVE_IPV6
- #define PING_HEADER_LEN (USE_IPV6 ? sizeof (struct icmp6_hdr) : ICMP_MINLEN)
-+#else
-+#define PING_HEADER_LEN (ICMP_MINLEN)
-+#endif
-+
- #define PING_TIMING(s)  ((s) >= sizeof (struct timeval))
- #define PING_DATALEN    (64 - PING_HEADER_LEN)  /* default data length */
- 
-@@ -74,13 +83,20 @@ struct ping_stat
-   (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\
- } while (0)
- 
-+#ifdef HAVE_IPV6
- /* FIXME: Adjust IPv6 case for options and their consumption.  */
- #define _PING_BUFLEN(p, u) ((u)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \
- 				   (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN))
- 
-+#else
-+#define _PING_BUFLEN(p, u) (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN)
-+#endif
-+
-+#ifdef HAVE_IPV6
- typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest,
- 			  struct sockaddr_in6 * from, struct icmp6_hdr * icmp,
- 			  int datalen);
-+#endif
- 
- typedef int (*ping_efp) (int code,
- 			 void *closure,
-@@ -89,13 +105,17 @@ typedef int (*ping_efp) (int code,
- 			 struct ip * ip, icmphdr_t * icmp, int datalen);
- 
- union event {
-+#ifdef HAVE_IPV6
-   ping_efp6 handler6;
-+#endif
-   ping_efp handler;
- };
- 
- union ping_address {
-   struct sockaddr_in ping_sockaddr;
-+#ifdef HAVE_IPV6
-   struct sockaddr_in6 ping_sockaddr6;
-+#endif
- };
- 
- typedef struct ping_data PING;
--- 
-2.8.3
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch
deleted file mode 100644
index 3da4e9f..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 552a7d64ad4a7188a9b7cd89933ae7caf7ebfe90 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier at gentoo.org>
-Date: Thu, 18 Nov 2010 16:59:14 -0500
-Subject: [PATCH gnulib] printf-parse: pull in features.h for __GLIBC__
-
-Upstream-Status: Pending
-
-Signed-off-by: Mike Frysinger <vapier at gentoo.org>
----
- lib/printf-parse.h |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/lib/printf-parse.h b/lib/printf-parse.h
-index 67a4a2a..3bd6152 100644
---- a/lib/printf-parse.h
-+++ b/lib/printf-parse.h
-@@ -25,6 +25,9 @@
- 
- #include "printf-args.h"
- 
-+#ifdef HAVE_FEATURES_H
-+# include <features.h>	/* for __GLIBC__ */
-+#endif
- 
- /* Flags */
- #define FLAG_GROUP       1      /* ' flag */
--- 
-1.7.3.2
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch
deleted file mode 100644
index b13bb92..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending
-
---- inetutils-1.8/lib/wchar.in.h
-+++ inetutils-1.8/lib/wchar.in.h
-@@ -70,6 +70,9 @@
- /* The include_next requires a split double-inclusion guard.  */
- #if @HAVE_WCHAR_H@
- # @INCLUDE_NEXT@ @NEXT_WCHAR_H@
-+#else
-+# include <stddef.h>
-+# define MB_CUR_MAX 1
- #endif
- 
- #undef _GL_ALREADY_INCLUDING_WCHAR_H
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch
deleted file mode 100644
index 2592989..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-inetutils: define PATH_PROCNET_DEV if not already defined
-
-this prevents the following compilation error :
-system/linux.c:401:15: error: 'PATH_PROCNET_DEV' undeclared (first use in this function)
-
-this patch comes from :
- http://repository.timesys.com/buildsources/i/inetutils/inetutils-1.9/
-
-Upstream-Status: Inappropriate [not author]
-
-Signed-of-by: Eric Bénard <eric@eukrea.com>
----
-diff -Naur inetutils-1.9.orig/ifconfig/system/linux.c inetutils-1.9/ifconfig/system/linux.c
---- inetutils-1.9.orig/ifconfig/system/linux.c	2012-01-04 16:31:36.000000000 -0500
-+++ inetutils-1.9/ifconfig/system/linux.c	2012-01-04 16:40:53.000000000 -0500
-@@ -49,6 +49,10 @@
- #include "../ifconfig.h"
- 
- 
-+#ifndef PATH_PROCNET_DEV
-+  #define PATH_PROCNET_DEV "/proc/net/dev"
-+#endif
-+
- /* ARPHRD stuff.  */
- 
- static void
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch
deleted file mode 100644
index ff3abd8..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Only check security/pam_appl.h which is provided by package libpam when pam is
-enabled.
-
-Upstream-Status: Pending
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-diff --git a/configure.ac b/configure.ac
-index b35e672..e78a751 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -195,6 +195,19 @@ fi
- 
- # See if we have libpam.a.  Investigate PAM versus Linux-PAM.
- if test "$with_pam" = yes ; then
-+  AC_CHECK_HEADERS([security/pam_appl.h], [], [], [
-+#include <sys/types.h>
-+#ifdef HAVE_NETINET_IN_SYSTM_H
-+# include <netinet/in_systm.h>
-+#endif
-+#include <netinet/in.h>
-+#ifdef HAVE_NETINET_IP_H
-+# include <netinet/ip.h>
-+#endif
-+#ifdef HAVE_SYS_PARAM_H
-+# include <sys/param.h>
-+#endif
-+])
-   AC_CHECK_LIB(dl, dlopen, LIBDL=-ldl)
-   AC_CHECK_LIB(pam, pam_authenticate, LIBPAM=-lpam)
-   if test "$ac_cv_lib_pam_pam_authenticate" = yes ; then
-@@ -587,7 +600,7 @@ AC_HEADER_DIRENT
- AC_CHECK_HEADERS([arpa/nameser.h errno.h fcntl.h features.h \
- 		  glob.h memory.h netinet/ether.h netinet/in_systm.h \
- 		  netinet/ip.h netinet/ip_icmp.h netinet/ip_var.h \
--		  security/pam_appl.h shadow.h \
-+		  shadow.h \
- 		  stdarg.h stdlib.h string.h stropts.h sys/tty.h \
- 		  sys/utsname.h sys/ptyvar.h sys/msgbuf.h sys/filio.h \
- 		  sys/ioctl_compat.h sys/cdefs.h sys/stream.h sys/mkdev.h \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils
deleted file mode 100644
index 30e81ef..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils
+++ /dev/null
@@ -1,20 +0,0 @@
-# default: off
-# description:
-# Rexecd is the server for the rexec program. The server provides remote 
-# execution facilities with authentication based on user names and 
-# passwords.
-#
-service exec
-{
-	socket_type	= stream
-	protocol	= tcp
-	flags		= NAMEINARGS
-	wait		= no
-	user		= root
-	group		= root
-	log_on_success	+= USERID
-	log_on_failure	+= USERID
-	server		= @SBINDIR@/tcpd
-	server_args	= @SBINDIR@/in.rexecd
-	disable		= yes
-}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils
deleted file mode 100644
index 21b55da..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils
+++ /dev/null
@@ -1,23 +0,0 @@
-# default: off
-# description:
-# Rlogind is a server for the rlogin program. The server provides remote 
-# execution with authentication based on privileged port numbers from trusted
-# host
-#
-service login
-{
-	socket_type	= stream
-	protocol	= tcp
-	flags		= NAMEINARGS
-	wait		= no
-	user		= root
-	group		= root
-	log_on_success	+= USERID
-	log_on_failure	+= USERID
-	server		= @SBINDIR@/tcpd
-	server_args	= @SBINDIR@/in.rlogind -a
-	disable		= yes
-}
-							
-							
-							
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils
deleted file mode 100644
index 2b894a7..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils
+++ /dev/null
@@ -1,21 +0,0 @@
-# default: off
-# description:
-# The rshd server is a server for the rcmd(3) routine and, 
-# consequently, for the rsh(1) program. The server provides 
-# remote execution facilities with authentication based on 
-# privileged port numbers from trusted hosts.
-#
-service shell
-{
-	socket_type	= stream
-	protocol	= tcp
-	flags		= NAMEINARGS
-	wait		= no
-	user		= root
-	group		= root
-	log_on_success	+= USERID
-	log_on_failure	+= USERID
-	server		= @SBINDIR@/tcpd
-	server_args	= @SBINDIR@/in.rshd -aL
-	disable		= yes
-}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils
deleted file mode 100644
index 2d9a040..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils
+++ /dev/null
@@ -1,13 +0,0 @@
-# default: on
-# description: The telnet server serves telnet sessions; it uses \
-#       unencrypted username/password pairs for authentication.
-service telnet
-{
-	disable		= no
-	flags		= REUSE
-	socket_type	= stream
-	wait		= no
-	user		= root
-	server		= @SBINDIR@/in.telnetd
-	log_on_failure	+= USERID
-}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils
deleted file mode 100644
index 67b44c4..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils
+++ /dev/null
@@ -1,19 +0,0 @@
-# default: off
-# description:
-# Tftpd is a server which supports the Internet Trivial File Transfer
-# Pro-tocol (RFC 783). The TFTP server operates at the port indicated
-# in the tftp service description; see services(5).
-#
-service tftp
-{
-        disable         = yes
-        socket_type     = dgram
-        protocol        = udp
-        flags           = IPv6
-        wait            = yes
-        user            = root
-        group           = root
-        server          = @SBINDIR@/in.tftpd
-        server_args     = /tftpboot
-}
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch
deleted file mode 100644
index 532a0e5..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-remove m4_esyscmd function
-
-Signed-off-by: Chunrong Guo <b40290@freescale.com>
---- inetutils-1.9.1/configure.ac	2012-01-06 22:05:05.000000000 +0800
-+++ inetutils-1.9.1/configure.ac	2012-11-12 14:01:11.732957019 +0800
-@@ -20,8 +20,7 @@
- 
- AC_PREREQ(2.59)
- 
--AC_INIT([GNU inetutils],
-- m4_esyscmd([build-aux/git-version-gen .tarball-version 's/inetutils-/v/;s/_/./g']),
-+AC_INIT([GNU inetutils],[1.9.4],
-  [bug-inetutils@gnu.org])
- 
- AC_CONFIG_SRCDIR([src/inetd.c])
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
deleted file mode 100644
index a27dbae..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
+++ /dev/null
@@ -1,206 +0,0 @@
-DESCRIPTION = "The GNU inetutils are a collection of common \
-networking utilities and servers including ftp, ftpd, rcp, \
-rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \
-talkd, telnet, telnetd, tftp, tftpd, and uucpd."
-HOMEPAGE = "http://www.gnu.org/software/inetutils"
-SECTION = "net"
-DEPENDS = "ncurses netbase readline virtual/crypt"
-
-LICENSE = "GPLv3"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7"
-
-SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \
-           file://version.patch \
-           file://inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch \
-           file://inetutils-1.8-0003-wchar.patch \
-           file://rexec.xinetd.inetutils  \
-           file://rlogin.xinetd.inetutils \
-           file://rsh.xinetd.inetutils \
-           file://telnet.xinetd.inetutils \
-           file://tftpd.xinetd.inetutils \
-           file://inetutils-1.9-PATH_PROCNET_DEV.patch \
-           file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \
-           file://0001-rcp-fix-to-work-with-large-files.patch \
-"
-
-SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52"
-SRC_URI[sha256sum] = "be8f75eff936b8e41b112462db51adf689715658a1b09e0d6b05d11ec92cc616"
-
-inherit autotools gettext update-alternatives texinfo
-
-acpaths = "-I ./m4"
-
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}"
-
-PACKAGECONFIG ??= "ftp uucpd \
-                   ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 ping6', '', d)} \
-                  "
-PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline"
-PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6 gl_cv_socket_ipv6=no,"
-PACKAGECONFIG[ping6] = "--enable-ping6,--disable-ping6,"
-
-EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \
-        inetutils_cv_path_login=${base_bindir}/login \
-        --with-libreadline-prefix=${STAGING_LIBDIR} \
-        --enable-rpath=no \
-"
-
-EXTRA_OECONF_append_libc-musl = " --disable-rsh --disable-rcp --disable-rlogin "
-
-do_configure_prepend () {
-    export HELP2MAN='true'
-    cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}/build-aux/config.rpath
-    rm -f ${S}/glob/configure*
-}
-
-do_install_append () {
-    install -m 0755 -d ${D}${base_sbindir}
-    install -m 0755 -d ${D}${sbindir}
-    install -m 0755 -d ${D}${sysconfdir}/xinetd.d
-    if [ "${base_bindir}" != "${bindir}" ] ; then
-         install -m 0755 -d ${D}${base_bindir}
-         mv ${D}${bindir}/ping* ${D}${base_bindir}/
-         mv ${D}${bindir}/hostname ${D}${base_bindir}/
-    fi
-    mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/
-    mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/
-    mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd
-    mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd
-    mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd
-    if [ -e ${D}${libexecdir}/rlogind ]; then
-        mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind
-    fi
-    if [ -e ${D}${libexecdir}/rshd ]; then
-        mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd
-    fi
-    if [ -e ${D}${libexecdir}/talkd ]; then
-        mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd
-    fi
-    mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd
-    mv ${D}${libexecdir}/* ${D}${bindir}/
-    cp ${WORKDIR}/rexec.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/rexec
-    cp ${WORKDIR}/rlogin.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/rlogin
-    cp ${WORKDIR}/rsh.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/rsh
-    cp ${WORKDIR}/telnet.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/telnet
-    cp ${WORKDIR}/tftpd.xinetd.inetutils  ${D}/${sysconfdir}/xinetd.d/tftpd
-
-    sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/*
-    if [ -e ${D}${libdir}/charset.alias ]; then
-        rm -rf ${D}${libdir}/charset.alias
-    fi
-    rm -rf ${D}${libexecdir}/
-    # remove usr/lib if empty
-    rmdir ${D}${libdir} || true
-}
-
-PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \
-${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \
-${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \
-${PN}-rsh ${PN}-rshd"
-
-# The packages tftpd, telnetd and rshd conflict with the ones
-# provided by netkit, so add the corresponding -dbg packages
-# for them to avoid the confliction between the dbg package
-# of inetutils and netkit.
-PACKAGES =+ "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg"
-NOAUTOPACKAGEDEBUG = "1"
-
-ALTERNATIVE_PRIORITY = "79"
-ALTERNATIVE_${PN} = "talk whois"
-ALTERNATIVE_LINK_NAME[talkd]  = "${sbindir}/in.talkd"
-ALTERNATIVE_LINK_NAME[uucpd]  = "${sbindir}/in.uucpd"
-
-ALTERNATIVE_PRIORITY_${PN}-logger = "60"
-ALTERNATIVE_${PN}-logger = "logger"
-ALTERNATIVE_${PN}-syslogd = "syslogd"
-ALTERNATIVE_LINK_NAME[syslogd]  = "${base_sbindir}/syslogd"
-
-ALTERNATIVE_${PN}-ftp = "ftp"
-ALTERNATIVE_${PN}-ftpd = "ftpd"
-ALTERNATIVE_${PN}-tftp = "tftp"
-ALTERNATIVE_${PN}-tftpd = "tftpd"
-ALTERNATIVE_LINK_NAME[tftpd] = "${sbindir}/tftpd"
-ALTERNATIVE_TARGET[tftpd]  = "${sbindir}/in.tftpd"
-
-ALTERNATIVE_${PN}-telnet = "telnet"
-ALTERNATIVE_${PN}-telnetd = "telnetd"
-ALTERNATIVE_LINK_NAME[telnetd] = "${sbindir}/telnetd"
-ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd"
-
-ALTERNATIVE_${PN}-rsh = "rcp rexec rlogin rsh"
-ALTERNATIVE_${PN}-rshd = "rshd rexecd rlogind"
-ALTERNATIVE_LINK_NAME[rshd] = "${sbindir}/rshd"
-ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd"
-ALTERNATIVE_LINK_NAME[rexecd] = "${sbindir}/rexecd"
-ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd"
-ALTERNATIVE_LINK_NAME[rlogind] = "${sbindir}/rlogind"
-ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind"
-
-ALTERNATIVE_${PN}-inetd= "inetd"
-ALTERNATIVE_${PN}-traceroute = "traceroute"
-
-ALTERNATIVE_${PN}-hostname = "hostname"
-ALTERNATIVE_LINK_NAME[hostname]  = "${base_bindir}/hostname"
-
-ALTERNATIVE_${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8"
-ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
-ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
-ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1"
-ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
-
-ALTERNATIVE_${PN}-ifconfig = "ifconfig"
-ALTERNATIVE_LINK_NAME[ifconfig]  = "${base_sbindir}/ifconfig"
-
-ALTERNATIVE_${PN}-ping = "ping"
-ALTERNATIVE_LINK_NAME[ping]   = "${base_bindir}/ping"
-
-ALTERNATIVE_${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}"
-ALTERNATIVE_LINK_NAME[ping6]  = "${base_bindir}/ping6"
-
-
-FILES_${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug"
-FILES_${PN}-ping = "${base_bindir}/ping.${BPN}"
-FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}"
-FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}"
-FILES_${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}"
-FILES_${PN}-traceroute = "${bindir}/traceroute.${BPN}"
-FILES_${PN}-logger = "${bindir}/logger.${BPN}"
-
-FILES_${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}"
-RCONFLICTS_${PN}-syslogd = "rsyslog busybox-syslog sysklogd syslog-ng"
-
-FILES_${PN}-ftp = "${bindir}/ftp.${BPN}"
-
-FILES_${PN}-tftp = "${bindir}/tftp.${BPN}"
-FILES_${PN}-telnet = "${bindir}/telnet.${BPN}"
-FILES_${PN}-rsh = "${bindir}/rsh.${BPN} ${bindir}/rlogin.${BPN} ${bindir}/rexec.${BPN} ${bindir}/rcp.${BPN}"
-
-FILES_${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \
-                    ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec"
-FILES_${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd"
-RDEPENDS_${PN}-rshd += "xinetd tcp-wrappers"
-RCONFLICTS_${PN}-rshd += "netkit-rshd"
-RPROVIDES_${PN}-rshd = "rshd"
-
-FILES_${PN}-ftpd = "${bindir}/ftpd.${BPN}"
-FILES_${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}"
-RDEPENDS_${PN}-ftpd += "xinetd"
-
-FILES_${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd"
-FILES_${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd"
-RCONFLICTS_${PN}-tftpd += "netkit-tftpd"
-RDEPENDS_${PN}-tftpd += "xinetd"
-
-FILES_${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet"
-FILES_${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd"
-RCONFLICTS_${PN}-telnetd += "netkit-telnetd"
-RPROVIDES_${PN}-telnetd = "telnetd"
-RDEPENDS_${PN}-telnetd += "xinetd"
-
-FILES_${PN}-inetd = "${bindir}/inetd.${BPN}"
-
-RDEPENDS_${PN} = "xinetd"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.0.bb
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.0.bb
index ff3f7f0..2e9d01e 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.13.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.16.0.bb
@@ -23,9 +23,8 @@
 SECTION = "libs"
 
 SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz"
-
-SRC_URI[md5sum] = "659d96bb03012ca6db414a9137fcdbd6"
-SRC_URI[sha256sum] = "593b4e4d2e1629fc407ab4750d69fa309a0ddb66565dc3deb5b60eddbdeb06da"
+SRC_URI[md5sum] = "eae9cf16114f4491dbbc0fe36bb7e6c3"
+SRC_URI[sha256sum] = "e3dab56e9093c790b7d5e0f7eb19451010fe680649d25cf1dcca9d5441669ae2"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
new file mode 100644
index 0000000..cd4291d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
@@ -0,0 +1,40 @@
+From 54698856e5602bbd9d61e855814c854a013b4840 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 22 Dec 2018 18:47:45 -0800
+Subject: [PATCH] Add OpenEmbedded cross compile case
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ genconfig.sh | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/genconfig.sh b/genconfig.sh
+index dc42462..59922e9 100755
+--- a/genconfig.sh
++++ b/genconfig.sh
+@@ -98,6 +98,12 @@ if [ -f ../shared/tomato_version ]; then
+ 	OS_VERSION="Tomato $TOMATO_VER"
+ fi
+ 
++# OpenEmbedded special case
++if [ -f ./os.openembedded ]; then
++	OS_NAME=OpenEmbedded
++	OS_VERSION=$(cat ./os.openembedded)
++fi
++
+ ${RM} ${CONFIGFILE}
+ 
+ echo "/* MiniUPnP Project" >> ${CONFIGFILE}
+@@ -318,6 +324,11 @@ case $OS_NAME in
+ 		echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
+ 		FW=netfilter
+ 		;;
++	OpenEmbedded)
++		OS_URL=http://www.openembedded.org/
++		echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
++		FW=netfilter
++		;;
+ 	AstLinux)
+ 		OS_URL=http://www.astlinux.org/
+ 		echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20190210.bb
similarity index 81%
rename from meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20190210.bb
index 04b5cd5..302f507 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20190210.bb
@@ -12,13 +12,18 @@
 DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack"
 
 SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \
-           file://miniupnpd.service"
-
-SRC_URI[md5sum] = "b4c7c938915edeee6ca4c65dd021f212"
-SRC_URI[sha256sum] = "860c15f2f8340fd69546b01cffe4c7fcff3e63a7bdfe5a2af6b2346f0e074bb6"
+           file://miniupnpd.service \
+           file://0001-Add-OpenEmbedded-cross-compile-case.patch \
+           "
+SRC_URI[md5sum] = "03b00c27106835e728a3b858ecf83390"
+SRC_URI[sha256sum] = "1aaecd25cf152d99557dfe80c7508af9cb06e97ecad4786ce5dafb4c958d196b"
 
 IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
 
+do_configure_prepend() {
+   echo "${@d.getVar('DISTRO_VERSION')}" > ${S}/os.openembedded
+}
+
 do_compile() {
     cd ${S}
     CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
deleted file mode 100644
index c89dfe6..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
+++ /dev/null
@@ -1,975 +0,0 @@
-From d9aeef8d95a325942cc92f4d72415771d75d904c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
-Date: Tue, 12 Apr 2016 13:05:10 +0100
-Subject: [PATCH 2/2] uthash: remove in-tree version
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We don't need it as we want to use the version provided by
-meta-oe instead.
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: André Draszik <andre.draszik@jci.com>
----
- src/uthash.h | 948 -----------------------------------------------------------
- 1 file changed, 948 deletions(-)
- delete mode 100644 src/uthash.h
-
-diff --git a/src/uthash.h b/src/uthash.h
-deleted file mode 100644
-index 915a825..0000000
---- a/src/uthash.h
-+++ /dev/null
-@@ -1,948 +0,0 @@
--/*
--Copyright (c) 2003-2013, Troy D. Hanson     http://troydhanson.github.com/uthash/
--All rights reserved.
--
--Redistribution and use in source and binary forms, with or without
--modification, are permitted provided that the following conditions are met:
--
--    * Redistributions of source code must retain the above copyright
--      notice, this list of conditions and the following disclaimer.
--
--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--*/
--
--#ifndef UTHASH_H
--#define UTHASH_H 
--
--#include <string.h>   /* memcmp,strlen */
--#include <stddef.h>   /* ptrdiff_t */
--#include <stdlib.h>   /* exit() */
--
--/* These macros use decltype or the earlier __typeof GNU extension.
--   As decltype is only available in newer compilers (VS2010 or gcc 4.3+
--   when compiling c++ source) this code uses whatever method is needed
--   or, for VS2008 where neither is available, uses casting workarounds. */
--#ifdef _MSC_VER         /* MS compiler */
--#if _MSC_VER >= 1600 && defined(__cplusplus)  /* VS2010 or newer in C++ mode */
--#define DECLTYPE(x) (decltype(x))
--#else                   /* VS2008 or older (or VS2010 in C mode) */
--#define NO_DECLTYPE
--#define DECLTYPE(x)
--#endif
--#else                   /* GNU, Sun and other compilers */
--#define DECLTYPE(x) (__typeof(x))
--#endif
--
--#ifdef NO_DECLTYPE
--#define DECLTYPE_ASSIGN(dst,src)                                                 \
--do {                                                                             \
--  char **_da_dst = (char**)(&(dst));                                             \
--  *_da_dst = (char*)(src);                                                       \
--} while(0)
--#else 
--#define DECLTYPE_ASSIGN(dst,src)                                                 \
--do {                                                                             \
--  (dst) = DECLTYPE(dst)(src);                                                    \
--} while(0)
--#endif
--
--/* a number of the hash function use uint32_t which isn't defined on win32 */
--#ifdef _MSC_VER
--typedef unsigned int uint32_t;
--typedef unsigned char uint8_t;
--#else
--#include <inttypes.h>   /* uint32_t */
--#endif
--
--#define UTHASH_VERSION 1.9.8
--
--#ifndef uthash_fatal
--#define uthash_fatal(msg) exit(-1)        /* fatal error (out of memory,etc) */
--#endif
--#ifndef uthash_malloc
--#define uthash_malloc(sz) malloc(sz)      /* malloc fcn                      */
--#endif
--#ifndef uthash_free
--#define uthash_free(ptr,sz) free(ptr)     /* free fcn                        */
--#endif
--
--#ifndef uthash_noexpand_fyi
--#define uthash_noexpand_fyi(tbl)          /* can be defined to log noexpand  */
--#endif
--#ifndef uthash_expand_fyi
--#define uthash_expand_fyi(tbl)            /* can be defined to log expands   */
--#endif
--
--/* initial number of buckets */
--#define HASH_INITIAL_NUM_BUCKETS 32      /* initial number of buckets        */
--#define HASH_INITIAL_NUM_BUCKETS_LOG2 5  /* lg2 of initial number of buckets */
--#define HASH_BKT_CAPACITY_THRESH 10      /* expand when bucket count reaches */
--
--/* calculate the element whose hash handle address is hhe */
--#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
--
--#define HASH_FIND(hh,head,keyptr,keylen,out)                                     \
--do {                                                                             \
--  unsigned _hf_bkt,_hf_hashv;                                                    \
--  out=NULL;                                                                      \
--  if (head) {                                                                    \
--     HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt);   \
--     if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) {                           \
--       HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ],  \
--                        keyptr,keylen,out);                                      \
--     }                                                                           \
--  }                                                                              \
--} while (0)
--
--#ifdef HASH_BLOOM
--#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)
--#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)
--#define HASH_BLOOM_MAKE(tbl)                                                     \
--do {                                                                             \
--  (tbl)->bloom_nbits = HASH_BLOOM;                                               \
--  (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN);                 \
--  if (!((tbl)->bloom_bv))  { uthash_fatal( "out of memory"); }                   \
--  memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN);                                \
--  (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE;                                       \
--} while (0) 
--
--#define HASH_BLOOM_FREE(tbl)                                                     \
--do {                                                                             \
--  uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN);                              \
--} while (0) 
--
--#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
--#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
--
--#define HASH_BLOOM_ADD(tbl,hashv)                                                \
--  HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
--
--#define HASH_BLOOM_TEST(tbl,hashv)                                               \
--  HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
--
--#else
--#define HASH_BLOOM_MAKE(tbl) 
--#define HASH_BLOOM_FREE(tbl) 
--#define HASH_BLOOM_ADD(tbl,hashv) 
--#define HASH_BLOOM_TEST(tbl,hashv) (1)
--#define HASH_BLOOM_BYTELEN 0
--#endif
--
--#define HASH_MAKE_TABLE(hh,head)                                                 \
--do {                                                                             \
--  (head)->hh.tbl = (UT_hash_table*)uthash_malloc(                                \
--                  sizeof(UT_hash_table));                                        \
--  if (!((head)->hh.tbl))  { uthash_fatal( "out of memory"); }                    \
--  memset((head)->hh.tbl, 0, sizeof(UT_hash_table));                              \
--  (head)->hh.tbl->tail = &((head)->hh);                                          \
--  (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS;                        \
--  (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2;              \
--  (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head);                    \
--  (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc(                      \
--          HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket));               \
--  if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); }             \
--  memset((head)->hh.tbl->buckets, 0,                                             \
--          HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket));               \
--  HASH_BLOOM_MAKE((head)->hh.tbl);                                               \
--  (head)->hh.tbl->signature = HASH_SIGNATURE;                                    \
--} while(0)
--
--#define HASH_ADD(hh,head,fieldname,keylen_in,add)                                \
--        HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add)
--
--#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced)                   \
--do {                                                                             \
--  replaced=NULL;                                                                 \
--  HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced);                     \
--  if (replaced!=NULL) {                                                          \
--     HASH_DELETE(hh,head,replaced);                                              \
--  };                                                                             \
--  HASH_ADD(hh,head,fieldname,keylen_in,add);                                     \
--} while(0)
-- 
--#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add)                            \
--do {                                                                             \
-- unsigned _ha_bkt;                                                               \
-- (add)->hh.next = NULL;                                                          \
-- (add)->hh.key = (char*)keyptr;                                                  \
-- (add)->hh.keylen = (unsigned)keylen_in;                                                   \
-- if (!(head)) {                                                                  \
--    head = (add);                                                                \
--    (head)->hh.prev = NULL;                                                      \
--    HASH_MAKE_TABLE(hh,head);                                                    \
-- } else {                                                                        \
--    (head)->hh.tbl->tail->next = (add);                                          \
--    (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail);         \
--    (head)->hh.tbl->tail = &((add)->hh);                                         \
-- }                                                                               \
-- (head)->hh.tbl->num_items++;                                                    \
-- (add)->hh.tbl = (head)->hh.tbl;                                                 \
-- HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets,                         \
--         (add)->hh.hashv, _ha_bkt);                                              \
-- HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh);                   \
-- HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv);                                 \
-- HASH_EMIT_KEY(hh,head,keyptr,keylen_in);                                        \
-- HASH_FSCK(hh,head);                                                             \
--} while(0)
--
--#define HASH_TO_BKT( hashv, num_bkts, bkt )                                      \
--do {                                                                             \
--  bkt = ((hashv) & ((num_bkts) - 1));                                            \
--} while(0)
--
--/* delete "delptr" from the hash table.
-- * "the usual" patch-up process for the app-order doubly-linked-list.
-- * The use of _hd_hh_del below deserves special explanation.
-- * These used to be expressed using (delptr) but that led to a bug
-- * if someone used the same symbol for the head and deletee, like
-- *  HASH_DELETE(hh,users,users);
-- * We want that to work, but by changing the head (users) below
-- * we were forfeiting our ability to further refer to the deletee (users)
-- * in the patch-up process. Solution: use scratch space to
-- * copy the deletee pointer, then the latter references are via that
-- * scratch pointer rather than through the repointed (users) symbol.
-- */
--#define HASH_DELETE(hh,head,delptr)                                              \
--do {                                                                             \
--    unsigned _hd_bkt;                                                            \
--    struct UT_hash_handle *_hd_hh_del;                                           \
--    if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) )  {         \
--        uthash_free((head)->hh.tbl->buckets,                                     \
--                    (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
--        HASH_BLOOM_FREE((head)->hh.tbl);                                         \
--        uthash_free((head)->hh.tbl, sizeof(UT_hash_table));                      \
--        head = NULL;                                                             \
--    } else {                                                                     \
--        _hd_hh_del = &((delptr)->hh);                                            \
--        if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) {     \
--            (head)->hh.tbl->tail =                                               \
--                (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) +               \
--                (head)->hh.tbl->hho);                                            \
--        }                                                                        \
--        if ((delptr)->hh.prev) {                                                 \
--            ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) +                  \
--                    (head)->hh.tbl->hho))->next = (delptr)->hh.next;             \
--        } else {                                                                 \
--            DECLTYPE_ASSIGN(head,(delptr)->hh.next);                             \
--        }                                                                        \
--        if (_hd_hh_del->next) {                                                  \
--            ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next +                     \
--                    (head)->hh.tbl->hho))->prev =                                \
--                    _hd_hh_del->prev;                                            \
--        }                                                                        \
--        HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt);   \
--        HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del);        \
--        (head)->hh.tbl->num_items--;                                             \
--    }                                                                            \
--    HASH_FSCK(hh,head);                                                          \
--} while (0)
--
--
--/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */
--#define HASH_FIND_STR(head,findstr,out)                                          \
--    HASH_FIND(hh,head,findstr,strlen(findstr),out)
--#define HASH_ADD_STR(head,strfield,add)                                          \
--    HASH_ADD(hh,head,strfield,strlen(add->strfield),add)
--#define HASH_REPLACE_STR(head,strfield,add,replaced)                             \
--  HASH_REPLACE(hh,head,strfield,strlen(add->strfield),add,replaced)
--#define HASH_FIND_INT(head,findint,out)                                          \
--    HASH_FIND(hh,head,findint,sizeof(int),out)
--#define HASH_ADD_INT(head,intfield,add)                                          \
--    HASH_ADD(hh,head,intfield,sizeof(int),add)
--#define HASH_REPLACE_INT(head,intfield,add,replaced)                             \
--    HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
--#define HASH_FIND_PTR(head,findptr,out)                                          \
--    HASH_FIND(hh,head,findptr,sizeof(void *),out)
--#define HASH_ADD_PTR(head,ptrfield,add)                                          \
--    HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
--#define HASH_REPLACE_PTR(head,ptrfield,add)                                      \
--    HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
--#define HASH_DEL(head,delptr)                                                    \
--    HASH_DELETE(hh,head,delptr)
--
--/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.
-- * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.
-- */
--#ifdef HASH_DEBUG
--#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
--#define HASH_FSCK(hh,head)                                                       \
--do {                                                                             \
--    unsigned _bkt_i;                                                             \
--    unsigned _count, _bkt_count;                                                 \
--    char *_prev;                                                                 \
--    struct UT_hash_handle *_thh;                                                 \
--    if (head) {                                                                  \
--        _count = 0;                                                              \
--        for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) {       \
--            _bkt_count = 0;                                                      \
--            _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head;                      \
--            _prev = NULL;                                                        \
--            while (_thh) {                                                       \
--               if (_prev != (char*)(_thh->hh_prev)) {                            \
--                   HASH_OOPS("invalid hh_prev %p, actual %p\n",                  \
--                    _thh->hh_prev, _prev );                                      \
--               }                                                                 \
--               _bkt_count++;                                                     \
--               _prev = (char*)(_thh);                                            \
--               _thh = _thh->hh_next;                                             \
--            }                                                                    \
--            _count += _bkt_count;                                                \
--            if ((head)->hh.tbl->buckets[_bkt_i].count !=  _bkt_count) {          \
--               HASH_OOPS("invalid bucket count %d, actual %d\n",                 \
--                (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count);              \
--            }                                                                    \
--        }                                                                        \
--        if (_count != (head)->hh.tbl->num_items) {                               \
--            HASH_OOPS("invalid hh item count %d, actual %d\n",                   \
--                (head)->hh.tbl->num_items, _count );                             \
--        }                                                                        \
--        /* traverse hh in app order; check next/prev integrity, count */         \
--        _count = 0;                                                              \
--        _prev = NULL;                                                            \
--        _thh =  &(head)->hh;                                                     \
--        while (_thh) {                                                           \
--           _count++;                                                             \
--           if (_prev !=(char*)(_thh->prev)) {                                    \
--              HASH_OOPS("invalid prev %p, actual %p\n",                          \
--                    _thh->prev, _prev );                                         \
--           }                                                                     \
--           _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh);                    \
--           _thh = ( _thh->next ?  (UT_hash_handle*)((char*)(_thh->next) +        \
--                                  (head)->hh.tbl->hho) : NULL );                 \
--        }                                                                        \
--        if (_count != (head)->hh.tbl->num_items) {                               \
--            HASH_OOPS("invalid app item count %d, actual %d\n",                  \
--                (head)->hh.tbl->num_items, _count );                             \
--        }                                                                        \
--    }                                                                            \
--} while (0)
--#else
--#define HASH_FSCK(hh,head) 
--#endif
--
--/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to 
-- * the descriptor to which this macro is defined for tuning the hash function.
-- * The app can #include <unistd.h> to get the prototype for write(2). */
--#ifdef HASH_EMIT_KEYS
--#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)                                   \
--do {                                                                             \
--    unsigned _klen = fieldlen;                                                   \
--    write(HASH_EMIT_KEYS, &_klen, sizeof(_klen));                                \
--    write(HASH_EMIT_KEYS, keyptr, fieldlen);                                     \
--} while (0)
--#else 
--#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)                    
--#endif
--
--/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */
--#ifdef HASH_FUNCTION 
--#define HASH_FCN HASH_FUNCTION
--#else
--#define HASH_FCN HASH_JEN
--#endif
--
--/* The Bernstein hash function, used in Perl prior to v5.6 */
--#define HASH_BER(key,keylen,num_bkts,hashv,bkt)                                  \
--do {                                                                             \
--  unsigned _hb_keylen=keylen;                                                    \
--  char *_hb_key=(char*)(key);                                                    \
--  (hashv) = 0;                                                                   \
--  while (_hb_keylen--)  { (hashv) = ((hashv) * 33) + *_hb_key++; }               \
--  bkt = (hashv) & (num_bkts-1);                                                  \
--} while (0)
--
--
--/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at 
-- * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
--#define HASH_SAX(key,keylen,num_bkts,hashv,bkt)                                  \
--do {                                                                             \
--  unsigned _sx_i;                                                                \
--  char *_hs_key=(char*)(key);                                                    \
--  hashv = 0;                                                                     \
--  for(_sx_i=0; _sx_i < keylen; _sx_i++)                                          \
--      hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i];                     \
--  bkt = hashv & (num_bkts-1);                                                    \
--} while (0)
--
--#define HASH_FNV(key,keylen,num_bkts,hashv,bkt)                                  \
--do {                                                                             \
--  unsigned _fn_i;                                                                \
--  char *_hf_key=(char*)(key);                                                    \
--  hashv = 2166136261UL;                                                          \
--  for(_fn_i=0; _fn_i < keylen; _fn_i++)                                          \
--      hashv = (hashv * 16777619) ^ _hf_key[_fn_i];                               \
--  bkt = hashv & (num_bkts-1);                                                    \
--} while(0) 
-- 
--#define HASH_OAT(key,keylen,num_bkts,hashv,bkt)                                  \
--do {                                                                             \
--  unsigned _ho_i;                                                                \
--  char *_ho_key=(char*)(key);                                                    \
--  hashv = 0;                                                                     \
--  for(_ho_i=0; _ho_i < keylen; _ho_i++) {                                        \
--      hashv += _ho_key[_ho_i];                                                   \
--      hashv += (hashv << 10);                                                    \
--      hashv ^= (hashv >> 6);                                                     \
--  }                                                                              \
--  hashv += (hashv << 3);                                                         \
--  hashv ^= (hashv >> 11);                                                        \
--  hashv += (hashv << 15);                                                        \
--  bkt = hashv & (num_bkts-1);                                                    \
--} while(0)
--
--#define HASH_JEN_MIX(a,b,c)                                                      \
--do {                                                                             \
--  a -= b; a -= c; a ^= ( c >> 13 );                                              \
--  b -= c; b -= a; b ^= ( a << 8 );                                               \
--  c -= a; c -= b; c ^= ( b >> 13 );                                              \
--  a -= b; a -= c; a ^= ( c >> 12 );                                              \
--  b -= c; b -= a; b ^= ( a << 16 );                                              \
--  c -= a; c -= b; c ^= ( b >> 5 );                                               \
--  a -= b; a -= c; a ^= ( c >> 3 );                                               \
--  b -= c; b -= a; b ^= ( a << 10 );                                              \
--  c -= a; c -= b; c ^= ( b >> 15 );                                              \
--} while (0)
--
--#define HASH_JEN(key,keylen,num_bkts,hashv,bkt)                                  \
--do {                                                                             \
--  unsigned _hj_i,_hj_j,_hj_k;                                                    \
--  unsigned char *_hj_key=(unsigned char*)(key);                                  \
--  hashv = 0xfeedbeef;                                                            \
--  _hj_i = _hj_j = 0x9e3779b9;                                                    \
--  _hj_k = (unsigned)keylen;                                                      \
--  while (_hj_k >= 12) {                                                          \
--    _hj_i +=    (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 )                      \
--        + ( (unsigned)_hj_key[2] << 16 )                                         \
--        + ( (unsigned)_hj_key[3] << 24 ) );                                      \
--    _hj_j +=    (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 )                      \
--        + ( (unsigned)_hj_key[6] << 16 )                                         \
--        + ( (unsigned)_hj_key[7] << 24 ) );                                      \
--    hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 )                         \
--        + ( (unsigned)_hj_key[10] << 16 )                                        \
--        + ( (unsigned)_hj_key[11] << 24 ) );                                     \
--                                                                                 \
--     HASH_JEN_MIX(_hj_i, _hj_j, hashv);                                          \
--                                                                                 \
--     _hj_key += 12;                                                              \
--     _hj_k -= 12;                                                                \
--  }                                                                              \
--  hashv += keylen;                                                               \
--  switch ( _hj_k ) {                                                             \
--     case 11: hashv += ( (unsigned)_hj_key[10] << 24 );                          \
--     case 10: hashv += ( (unsigned)_hj_key[9] << 16 );                           \
--     case 9:  hashv += ( (unsigned)_hj_key[8] << 8 );                            \
--     case 8:  _hj_j += ( (unsigned)_hj_key[7] << 24 );                           \
--     case 7:  _hj_j += ( (unsigned)_hj_key[6] << 16 );                           \
--     case 6:  _hj_j += ( (unsigned)_hj_key[5] << 8 );                            \
--     case 5:  _hj_j += _hj_key[4];                                               \
--     case 4:  _hj_i += ( (unsigned)_hj_key[3] << 24 );                           \
--     case 3:  _hj_i += ( (unsigned)_hj_key[2] << 16 );                           \
--     case 2:  _hj_i += ( (unsigned)_hj_key[1] << 8 );                            \
--     case 1:  _hj_i += _hj_key[0];                                               \
--  }                                                                              \
--  HASH_JEN_MIX(_hj_i, _hj_j, hashv);                                             \
--  bkt = hashv & (num_bkts-1);                                                    \
--} while(0)
--
--/* The Paul Hsieh hash function */
--#undef get16bits
--#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__)             \
--  || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
--#define get16bits(d) (*((const uint16_t *) (d)))
--#endif
--
--#if !defined (get16bits)
--#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)             \
--                       +(uint32_t)(((const uint8_t *)(d))[0]) )
--#endif
--#define HASH_SFH(key,keylen,num_bkts,hashv,bkt)                                  \
--do {                                                                             \
--  unsigned char *_sfh_key=(unsigned char*)(key);                                 \
--  uint32_t _sfh_tmp, _sfh_len = keylen;                                          \
--                                                                                 \
--  int _sfh_rem = _sfh_len & 3;                                                   \
--  _sfh_len >>= 2;                                                                \
--  hashv = 0xcafebabe;                                                            \
--                                                                                 \
--  /* Main loop */                                                                \
--  for (;_sfh_len > 0; _sfh_len--) {                                              \
--    hashv    += get16bits (_sfh_key);                                            \
--    _sfh_tmp       = (uint32_t)(get16bits (_sfh_key+2)) << 11  ^ hashv;          \
--    hashv     = (hashv << 16) ^ _sfh_tmp;                                        \
--    _sfh_key += 2*sizeof (uint16_t);                                             \
--    hashv    += hashv >> 11;                                                     \
--  }                                                                              \
--                                                                                 \
--  /* Handle end cases */                                                         \
--  switch (_sfh_rem) {                                                            \
--    case 3: hashv += get16bits (_sfh_key);                                       \
--            hashv ^= hashv << 16;                                                \
--            hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18);              \
--            hashv += hashv >> 11;                                                \
--            break;                                                               \
--    case 2: hashv += get16bits (_sfh_key);                                       \
--            hashv ^= hashv << 11;                                                \
--            hashv += hashv >> 17;                                                \
--            break;                                                               \
--    case 1: hashv += *_sfh_key;                                                  \
--            hashv ^= hashv << 10;                                                \
--            hashv += hashv >> 1;                                                 \
--  }                                                                              \
--                                                                                 \
--    /* Force "avalanching" of final 127 bits */                                  \
--    hashv ^= hashv << 3;                                                         \
--    hashv += hashv >> 5;                                                         \
--    hashv ^= hashv << 4;                                                         \
--    hashv += hashv >> 17;                                                        \
--    hashv ^= hashv << 25;                                                        \
--    hashv += hashv >> 6;                                                         \
--    bkt = hashv & (num_bkts-1);                                                  \
--} while(0) 
--
--#ifdef HASH_USING_NO_STRICT_ALIASING
--/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads.
-- * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
-- * MurmurHash uses the faster approach only on CPU's where we know it's safe. 
-- *
-- * Note the preprocessor built-in defines can be emitted using:
-- *
-- *   gcc -m64 -dM -E - < /dev/null                  (on gcc)
-- *   cc -## a.c (where a.c is a simple test file)   (Sun Studio)
-- */
--#if (defined(__i386__) || defined(__x86_64__)  || defined(_M_IX86))
--#define MUR_GETBLOCK(p,i) p[i]
--#else /* non intel */
--#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0)
--#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1)
--#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2)
--#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3)
--#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL))
--#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__))
--#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24))
--#define MUR_TWO_TWO(p)   ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16))
--#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >>  8))
--#else /* assume little endian non-intel */
--#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24))
--#define MUR_TWO_TWO(p)   ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16))
--#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) <<  8))
--#endif
--#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) :           \
--                            (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \
--                             (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) :  \
--                                                      MUR_ONE_THREE(p))))
--#endif
--#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r))))
--#define MUR_FMIX(_h) \
--do {                 \
--  _h ^= _h >> 16;    \
--  _h *= 0x85ebca6b;  \
--  _h ^= _h >> 13;    \
--  _h *= 0xc2b2ae35l; \
--  _h ^= _h >> 16;    \
--} while(0)
--
--#define HASH_MUR(key,keylen,num_bkts,hashv,bkt)                        \
--do {                                                                   \
--  const uint8_t *_mur_data = (const uint8_t*)(key);                    \
--  const int _mur_nblocks = (keylen) / 4;                               \
--  uint32_t _mur_h1 = 0xf88D5353;                                       \
--  uint32_t _mur_c1 = 0xcc9e2d51;                                       \
--  uint32_t _mur_c2 = 0x1b873593;                                       \
--  uint32_t _mur_k1 = 0;                                                \
--  const uint8_t *_mur_tail;                                            \
--  const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \
--  int _mur_i;                                                          \
--  for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) {                      \
--    _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i);                        \
--    _mur_k1 *= _mur_c1;                                                \
--    _mur_k1 = MUR_ROTL32(_mur_k1,15);                                  \
--    _mur_k1 *= _mur_c2;                                                \
--                                                                       \
--    _mur_h1 ^= _mur_k1;                                                \
--    _mur_h1 = MUR_ROTL32(_mur_h1,13);                                  \
--    _mur_h1 = _mur_h1*5+0xe6546b64;                                    \
--  }                                                                    \
--  _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4);            \
--  _mur_k1=0;                                                           \
--  switch((keylen) & 3) {                                               \
--    case 3: _mur_k1 ^= _mur_tail[2] << 16;                             \
--    case 2: _mur_k1 ^= _mur_tail[1] << 8;                              \
--    case 1: _mur_k1 ^= _mur_tail[0];                                   \
--    _mur_k1 *= _mur_c1;                                                \
--    _mur_k1 = MUR_ROTL32(_mur_k1,15);                                  \
--    _mur_k1 *= _mur_c2;                                                \
--    _mur_h1 ^= _mur_k1;                                                \
--  }                                                                    \
--  _mur_h1 ^= (keylen);                                                 \
--  MUR_FMIX(_mur_h1);                                                   \
--  hashv = _mur_h1;                                                     \
--  bkt = hashv & (num_bkts-1);                                          \
--} while(0)
--#endif  /* HASH_USING_NO_STRICT_ALIASING */
--
--/* key comparison function; return 0 if keys equal */
--#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) 
--
--/* iterate over items in a known bucket to find desired item */
--#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out)                       \
--do {                                                                             \
-- if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head));          \
-- else out=NULL;                                                                  \
-- while (out) {                                                                   \
--    if ((out)->hh.keylen == keylen_in) {                                           \
--        if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break;             \
--    }                                                                            \
--    if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \
--    else out = NULL;                                                             \
-- }                                                                               \
--} while(0)
--
--/* add an item to a bucket  */
--#define HASH_ADD_TO_BKT(head,addhh)                                              \
--do {                                                                             \
-- head.count++;                                                                   \
-- (addhh)->hh_next = head.hh_head;                                                \
-- (addhh)->hh_prev = NULL;                                                        \
-- if (head.hh_head) { (head).hh_head->hh_prev = (addhh); }                        \
-- (head).hh_head=addhh;                                                           \
-- if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH)             \
--     && (addhh)->tbl->noexpand != 1) {                                           \
--       HASH_EXPAND_BUCKETS((addhh)->tbl);                                        \
-- }                                                                               \
--} while(0)
--
--/* remove an item from a given bucket */
--#define HASH_DEL_IN_BKT(hh,head,hh_del)                                          \
--    (head).count--;                                                              \
--    if ((head).hh_head == hh_del) {                                              \
--      (head).hh_head = hh_del->hh_next;                                          \
--    }                                                                            \
--    if (hh_del->hh_prev) {                                                       \
--        hh_del->hh_prev->hh_next = hh_del->hh_next;                              \
--    }                                                                            \
--    if (hh_del->hh_next) {                                                       \
--        hh_del->hh_next->hh_prev = hh_del->hh_prev;                              \
--    }                                                                
--
--/* Bucket expansion has the effect of doubling the number of buckets
-- * and redistributing the items into the new buckets. Ideally the
-- * items will distribute more or less evenly into the new buckets
-- * (the extent to which this is true is a measure of the quality of
-- * the hash function as it applies to the key domain). 
-- * 
-- * With the items distributed into more buckets, the chain length
-- * (item count) in each bucket is reduced. Thus by expanding buckets
-- * the hash keeps a bound on the chain length. This bounded chain 
-- * length is the essence of how a hash provides constant time lookup.
-- * 
-- * The calculation of tbl->ideal_chain_maxlen below deserves some
-- * explanation. First, keep in mind that we're calculating the ideal
-- * maximum chain length based on the *new* (doubled) bucket count.
-- * In fractions this is just n/b (n=number of items,b=new num buckets).
-- * Since the ideal chain length is an integer, we want to calculate 
-- * ceil(n/b). We don't depend on floating point arithmetic in this
-- * hash, so to calculate ceil(n/b) with integers we could write
-- * 
-- *      ceil(n/b) = (n/b) + ((n%b)?1:0)
-- * 
-- * and in fact a previous version of this hash did just that.
-- * But now we have improved things a bit by recognizing that b is
-- * always a power of two. We keep its base 2 log handy (call it lb),
-- * so now we can write this with a bit shift and logical AND:
-- * 
-- *      ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
-- * 
-- */
--#define HASH_EXPAND_BUCKETS(tbl)                                                 \
--do {                                                                             \
--    unsigned _he_bkt;                                                            \
--    unsigned _he_bkt_i;                                                          \
--    struct UT_hash_handle *_he_thh, *_he_hh_nxt;                                 \
--    UT_hash_bucket *_he_new_buckets, *_he_newbkt;                                \
--    _he_new_buckets = (UT_hash_bucket*)uthash_malloc(                            \
--             2 * tbl->num_buckets * sizeof(struct UT_hash_bucket));              \
--    if (!_he_new_buckets) { uthash_fatal( "out of memory"); }                    \
--    memset(_he_new_buckets, 0,                                                   \
--            2 * tbl->num_buckets * sizeof(struct UT_hash_bucket));               \
--    tbl->ideal_chain_maxlen =                                                    \
--       (tbl->num_items >> (tbl->log2_num_buckets+1)) +                           \
--       ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0);                    \
--    tbl->nonideal_items = 0;                                                     \
--    for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++)                \
--    {                                                                            \
--        _he_thh = tbl->buckets[ _he_bkt_i ].hh_head;                             \
--        while (_he_thh) {                                                        \
--           _he_hh_nxt = _he_thh->hh_next;                                        \
--           HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt);            \
--           _he_newbkt = &(_he_new_buckets[ _he_bkt ]);                           \
--           if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) {                \
--             tbl->nonideal_items++;                                              \
--             _he_newbkt->expand_mult = _he_newbkt->count /                       \
--                                        tbl->ideal_chain_maxlen;                 \
--           }                                                                     \
--           _he_thh->hh_prev = NULL;                                              \
--           _he_thh->hh_next = _he_newbkt->hh_head;                               \
--           if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev =               \
--                _he_thh;                                                         \
--           _he_newbkt->hh_head = _he_thh;                                        \
--           _he_thh = _he_hh_nxt;                                                 \
--        }                                                                        \
--    }                                                                            \
--    uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
--    tbl->num_buckets *= 2;                                                       \
--    tbl->log2_num_buckets++;                                                     \
--    tbl->buckets = _he_new_buckets;                                              \
--    tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ?         \
--        (tbl->ineff_expands+1) : 0;                                              \
--    if (tbl->ineff_expands > 1) {                                                \
--        tbl->noexpand=1;                                                         \
--        uthash_noexpand_fyi(tbl);                                                \
--    }                                                                            \
--    uthash_expand_fyi(tbl);                                                      \
--} while(0)
--
--
--/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
--/* Note that HASH_SORT assumes the hash handle name to be hh. 
-- * HASH_SRT was added to allow the hash handle name to be passed in. */
--#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)
--#define HASH_SRT(hh,head,cmpfcn)                                                 \
--do {                                                                             \
--  unsigned _hs_i;                                                                \
--  unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize;               \
--  struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail;            \
--  if (head) {                                                                    \
--      _hs_insize = 1;                                                            \
--      _hs_looping = 1;                                                           \
--      _hs_list = &((head)->hh);                                                  \
--      while (_hs_looping) {                                                      \
--          _hs_p = _hs_list;                                                      \
--          _hs_list = NULL;                                                       \
--          _hs_tail = NULL;                                                       \
--          _hs_nmerges = 0;                                                       \
--          while (_hs_p) {                                                        \
--              _hs_nmerges++;                                                     \
--              _hs_q = _hs_p;                                                     \
--              _hs_psize = 0;                                                     \
--              for ( _hs_i = 0; _hs_i  < _hs_insize; _hs_i++ ) {                  \
--                  _hs_psize++;                                                   \
--                  _hs_q = (UT_hash_handle*)((_hs_q->next) ?                      \
--                          ((void*)((char*)(_hs_q->next) +                        \
--                          (head)->hh.tbl->hho)) : NULL);                         \
--                  if (! (_hs_q) ) break;                                         \
--              }                                                                  \
--              _hs_qsize = _hs_insize;                                            \
--              while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) {           \
--                  if (_hs_psize == 0) {                                          \
--                      _hs_e = _hs_q;                                             \
--                      _hs_q = (UT_hash_handle*)((_hs_q->next) ?                  \
--                              ((void*)((char*)(_hs_q->next) +                    \
--                              (head)->hh.tbl->hho)) : NULL);                     \
--                      _hs_qsize--;                                               \
--                  } else if ( (_hs_qsize == 0) || !(_hs_q) ) {                   \
--                      _hs_e = _hs_p;                                             \
--                      if (_hs_p){                                                \
--                        _hs_p = (UT_hash_handle*)((_hs_p->next) ?                \
--                                ((void*)((char*)(_hs_p->next) +                  \
--                                (head)->hh.tbl->hho)) : NULL);                   \
--                       }                                                         \
--                      _hs_psize--;                                               \
--                  } else if ((                                                   \
--                      cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
--                             DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
--                             ) <= 0) {                                           \
--                      _hs_e = _hs_p;                                             \
--                      if (_hs_p){                                                \
--                        _hs_p = (UT_hash_handle*)((_hs_p->next) ?                \
--                               ((void*)((char*)(_hs_p->next) +                   \
--                               (head)->hh.tbl->hho)) : NULL);                    \
--                       }                                                         \
--                      _hs_psize--;                                               \
--                  } else {                                                       \
--                      _hs_e = _hs_q;                                             \
--                      _hs_q = (UT_hash_handle*)((_hs_q->next) ?                  \
--                              ((void*)((char*)(_hs_q->next) +                    \
--                              (head)->hh.tbl->hho)) : NULL);                     \
--                      _hs_qsize--;                                               \
--                  }                                                              \
--                  if ( _hs_tail ) {                                              \
--                      _hs_tail->next = ((_hs_e) ?                                \
--                            ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL);          \
--                  } else {                                                       \
--                      _hs_list = _hs_e;                                          \
--                  }                                                              \
--                  if (_hs_e) {                                                   \
--                  _hs_e->prev = ((_hs_tail) ?                                    \
--                     ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL);              \
--                  }                                                              \
--                  _hs_tail = _hs_e;                                              \
--              }                                                                  \
--              _hs_p = _hs_q;                                                     \
--          }                                                                      \
--          if (_hs_tail){                                                         \
--            _hs_tail->next = NULL;                                               \
--          }                                                                      \
--          if ( _hs_nmerges <= 1 ) {                                              \
--              _hs_looping=0;                                                     \
--              (head)->hh.tbl->tail = _hs_tail;                                   \
--              DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list));      \
--          }                                                                      \
--          _hs_insize *= 2;                                                       \
--      }                                                                          \
--      HASH_FSCK(hh,head);                                                        \
-- }                                                                               \
--} while (0)
--
--/* This function selects items from one hash into another hash. 
-- * The end result is that the selected items have dual presence 
-- * in both hashes. There is no copy of the items made; rather 
-- * they are added into the new hash through a secondary hash 
-- * hash handle that must be present in the structure. */
--#define HASH_SELECT(hh_dst, dst, hh_src, src, cond)                              \
--do {                                                                             \
--  unsigned _src_bkt, _dst_bkt;                                                   \
--  void *_last_elt=NULL, *_elt;                                                   \
--  UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL;                         \
--  ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst));                 \
--  if (src) {                                                                     \
--    for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) {     \
--      for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head;                \
--          _src_hh;                                                               \
--          _src_hh = _src_hh->hh_next) {                                          \
--          _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh);                       \
--          if (cond(_elt)) {                                                      \
--            _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho);               \
--            _dst_hh->key = _src_hh->key;                                         \
--            _dst_hh->keylen = _src_hh->keylen;                                   \
--            _dst_hh->hashv = _src_hh->hashv;                                     \
--            _dst_hh->prev = _last_elt;                                           \
--            _dst_hh->next = NULL;                                                \
--            if (_last_elt_hh) { _last_elt_hh->next = _elt; }                     \
--            if (!dst) {                                                          \
--              DECLTYPE_ASSIGN(dst,_elt);                                         \
--              HASH_MAKE_TABLE(hh_dst,dst);                                       \
--            } else {                                                             \
--              _dst_hh->tbl = (dst)->hh_dst.tbl;                                  \
--            }                                                                    \
--            HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt);    \
--            HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh);            \
--            (dst)->hh_dst.tbl->num_items++;                                      \
--            _last_elt = _elt;                                                    \
--            _last_elt_hh = _dst_hh;                                              \
--          }                                                                      \
--      }                                                                          \
--    }                                                                            \
--  }                                                                              \
--  HASH_FSCK(hh_dst,dst);                                                         \
--} while (0)
--
--#define HASH_CLEAR(hh,head)                                                      \
--do {                                                                             \
--  if (head) {                                                                    \
--    uthash_free((head)->hh.tbl->buckets,                                         \
--                (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket));      \
--    HASH_BLOOM_FREE((head)->hh.tbl);                                             \
--    uthash_free((head)->hh.tbl, sizeof(UT_hash_table));                          \
--    (head)=NULL;                                                                 \
--  }                                                                              \
--} while(0)
--
--#define HASH_OVERHEAD(hh,head)                                                   \
-- (size_t)((((head)->hh.tbl->num_items   * sizeof(UT_hash_handle))   +            \
--           ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket))   +            \
--            (sizeof(UT_hash_table))                                 +            \
--            (HASH_BLOOM_BYTELEN)))
--
--#ifdef NO_DECLTYPE
--#define HASH_ITER(hh,head,el,tmp)                                                \
--for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL);       \
--  el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) 
--#else
--#define HASH_ITER(hh,head,el,tmp)                                                \
--for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL);                 \
--  el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))
--#endif
--
--/* obtain a count of items in the hash */
--#define HASH_COUNT(head) HASH_CNT(hh,head) 
--#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)
--
--typedef struct UT_hash_bucket {
--   struct UT_hash_handle *hh_head;
--   unsigned count;
--
--   /* expand_mult is normally set to 0. In this situation, the max chain length
--    * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If
--    * the bucket's chain exceeds this length, bucket expansion is triggered). 
--    * However, setting expand_mult to a non-zero value delays bucket expansion
--    * (that would be triggered by additions to this particular bucket)
--    * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.
--    * (The multiplier is simply expand_mult+1). The whole idea of this
--    * multiplier is to reduce bucket expansions, since they are expensive, in
--    * situations where we know that a particular bucket tends to be overused.
--    * It is better to let its chain length grow to a longer yet-still-bounded
--    * value, than to do an O(n) bucket expansion too often. 
--    */
--   unsigned expand_mult;
--
--} UT_hash_bucket;
--
--/* random signature used only to find hash tables in external analysis */
--#define HASH_SIGNATURE 0xa0111fe1
--#define HASH_BLOOM_SIGNATURE 0xb12220f2
--
--typedef struct UT_hash_table {
--   UT_hash_bucket *buckets;
--   unsigned num_buckets, log2_num_buckets;
--   unsigned num_items;
--   struct UT_hash_handle *tail; /* tail hh in app order, for fast append    */
--   ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
--
--   /* in an ideal situation (all buckets used equally), no bucket would have
--    * more than ceil(#items/#buckets) items. that's the ideal chain length. */
--   unsigned ideal_chain_maxlen;
--
--   /* nonideal_items is the number of items in the hash whose chain position
--    * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
--    * hash distribution; reaching them in a chain traversal takes >ideal steps */
--   unsigned nonideal_items;
--
--   /* ineffective expands occur when a bucket doubling was performed, but 
--    * afterward, more than half the items in the hash had nonideal chain
--    * positions. If this happens on two consecutive expansions we inhibit any
--    * further expansion, as it's not helping; this happens when the hash
--    * function isn't a good fit for the key domain. When expansion is inhibited
--    * the hash will still work, albeit no longer in constant time. */
--   unsigned ineff_expands, noexpand;
--
--   uint32_t signature; /* used only to find hash tables in external analysis */
--#ifdef HASH_BLOOM
--   uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
--   uint8_t *bloom_bv;
--   char bloom_nbits;
--#endif
--
--} UT_hash_table;
--
--typedef struct UT_hash_handle {
--   struct UT_hash_table *tbl;
--   void *prev;                       /* prev element in app order      */
--   void *next;                       /* next element in app order      */
--   struct UT_hash_handle *hh_prev;   /* previous hh in bucket order    */
--   struct UT_hash_handle *hh_next;   /* next hh in bucket order        */
--   void *key;                        /* ptr to enclosing struct's key  */
--   unsigned keylen;                  /* enclosing struct's key len     */
--   unsigned hashv;                   /* result of hash-fcn(key)        */
--} UT_hash_handle;
--
--#endif /* UTHASH_H */
--- 
-2.15.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.8.bb
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.8.bb
index 06c1d67..768b593 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.5.8.bb
@@ -11,12 +11,11 @@
 DEPENDS = "uthash"
 
 SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
-           file://0002-uthash-remove-in-tree-version.patch \
            file://mosquitto.init \
 "
 
-SRC_URI[md5sum] = "f98c99998a36a234f3a9d9b402b991db"
-SRC_URI[sha256sum] = "8557bc7ae34dfaf32a0fb56d2491b7a7f731269c88337227233013502df4d5b0"
+SRC_URI[md5sum] = "bbbcceb32db3657d9d436a8440a9db1c"
+SRC_URI[sha256sum] = "78d7e70c3794dc3a1d484b4f2f8d3addebe9c2da3f5a1cebe557f7d13beb0da4"
 
 inherit systemd update-rc.d useradd
 
@@ -37,9 +36,10 @@
     ${PACKAGECONFIG_CONFARGS} \
     STRIP=/bin/true \
     WITH_DOCS=no \
+    WITH_BUNDLED_DEPS=no \
 "
 
-export LIB_SUFFIX = "${@d.getVar('baselib', True).replace('lib', '')}"
+export LIB_SUFFIX = "${@d.getVar('baselib').replace('lib', '')}"
 
 do_install() {
     oe_runmake 'DESTDIR=${D}' install
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
similarity index 81%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
index 351f264..302c029 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
@@ -1,4 +1,4 @@
-From 583f0448fb7e9aba2b410c06eec6f420b41a6a0c Mon Sep 17 00:00:00 2001
+From 3dc3d8e73bc430ea4e93e33f7b2a4b3e0ff175af Mon Sep 17 00:00:00 2001
 From: Pablo Saavedra <psaavedra@igalia.com>
 Date: Tue, 13 Mar 2018 17:36:20 +0100
 Subject: [PATCH] Fixed configure.ac: Fix pkgconfig sysroot locations
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 51e5eb6..c9d3e56 100644
+index 967eac0..b914219 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -572,7 +572,7 @@ if test "$have_jansson" = "yes"; then
+@@ -592,7 +592,7 @@ if test "$have_jansson" = "yes"; then
  	AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
  
  	AC_CHECK_TOOLS(READELF, [eu-readelf readelf])
@@ -20,6 +20,3 @@
  	JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[[\([^]]*\)]]/\1/p'`
  
  	if test "$JANSSON_SONAME" = ""; then
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Do-not-create-settings-settings-property-documentati.patch
similarity index 69%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Do-not-create-settings-settings-property-documentati.patch
index c50293c..5581dd3 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Do-not-create-settings-settings-property-documentati.patch
@@ -13,15 +13,15 @@
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
 ---
- Makefile.am  | 20 --------------------
+ Makefile.am  | 11 -----------
  configure.ac |  5 -----
- 2 files changed, 25 deletions(-)
+ 2 files changed, 16 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index 1e100f6..d31e3c1 100644
+index b180466..1ab4658 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -1115,9 +1115,7 @@ EXTRA_DIST += \
+@@ -1298,9 +1298,7 @@ EXTRA_DIST += \
  if HAVE_INTROSPECTION
  
  libnm_noinst_data = \
@@ -31,7 +31,7 @@
  	libnm/nm-settings-keyfile-docs.xml \
  	libnm/nm-settings-ifcfg-rh-docs.xml
  
-@@ -3692,27 +3690,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums)
+@@ -3930,18 +3928,9 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_lib_h_pub_mkenums)
  $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
  
  clients_common_settings_doc_h = clients/common/settings-docs.h
@@ -40,16 +40,7 @@
 -	$(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
 -DISTCLEANFILES += $(clients_common_settings_doc_h)
 -check-local-settings-docs: $(clients_common_settings_doc_h)
--	@if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
--		if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \
--			if test "$$NM_TEST_REGENERATE" == 1 ; then \
--				cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \
--			else \
--				echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \
--				false; \
--			fi; \
--		fi;\
--	fi
+-	$(srcdir)/tools/check-settings-docs.sh "$(srcdir)" "$(builddir)" "$(clients_common_settings_doc_h)"
 -check_local += check-local-settings-docs
 -else
  $(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp
@@ -60,10 +51,10 @@
  	$(clients_common_settings_doc_h) \
  	$(clients_common_settings_doc_h).in
 diff --git a/configure.ac b/configure.ac
-index 79dc3b9..23d14a6 100644
+index b914219..872c292 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1195,11 +1195,6 @@ GTK_DOC_CHECK(1.0)
+@@ -1215,11 +1215,6 @@ GTK_DOC_CHECK(1.0)
  # check if we can build setting property documentation
  build_docs=no
  if test -n "$INTROSPECTION_MAKEFILE"; then
@@ -76,5 +67,5 @@
  	if test -z "$PERL"; then
  		AC_MSG_ERROR([--enable-introspection requires perl])
 -- 
-2.14.5
+2.20.1
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
similarity index 83%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
index 0c415bc..555e5ff 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch
@@ -1,4 +1,4 @@
-From 3f4b6319701834182304c4079119780f4ae5b49b Mon Sep 17 00:00:00 2001
+From b2cdab746ef64bc25ba0b9cff596ebdddd6e8dc6 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 7 Nov 2018 11:30:44 -0800
 Subject: [PATCH] Do not include net/ethernet.h and linux/if_ether.h
@@ -7,6 +7,7 @@
 removing them still keeps it working so it seems they are redundant
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  shared/n-acd/src/n-acd.c              | 1 -
  src/platform/wpan/nm-wpan-utils.h     | 2 --
@@ -14,19 +15,19 @@
  3 files changed, 5 deletions(-)
 
 diff --git a/shared/n-acd/src/n-acd.c b/shared/n-acd/src/n-acd.c
-index 9164f95..9538e50 100644
+index def56a2..dd4eb78 100644
 --- a/shared/n-acd/src/n-acd.c
 +++ b/shared/n-acd/src/n-acd.c
-@@ -23,7 +23,6 @@
- #include <errno.h>
+@@ -11,7 +11,6 @@
+ #include <inttypes.h>
  #include <limits.h>
- #include <linux/filter.h>
--#include <linux/if_ether.h>
  #include <linux/if_packet.h>
- #include <net/ethernet.h>
- #include <netinet/if_ether.h>
+-#include <netinet/if_ether.h>
+ #include <netinet/in.h>
+ #include <stdlib.h>
+ #include <string.h>
 diff --git a/src/platform/wpan/nm-wpan-utils.h b/src/platform/wpan/nm-wpan-utils.h
-index f7d0c03..e1c81f5 100644
+index 1b54ec4..ed39938 100644
 --- a/src/platform/wpan/nm-wpan-utils.h
 +++ b/src/platform/wpan/nm-wpan-utils.h
 @@ -20,8 +20,6 @@
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
deleted file mode 100644
index 00dda5b..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From e92de7409a3e107f90d108a9c5d49bd0418296dd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 17:54:10 +0100
-Subject: [PATCH] Usual fix for musl libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- src/systemd/src/basic/stdio-util.h | 2 ++
- src/systemd/src/basic/util.h       | 5 +++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h
-index 73c0327..e1ce64f 100644
---- a/src/systemd/src/basic/stdio-util.h
-+++ b/src/systemd/src/basic/stdio-util.h
-@@ -1,7 +1,9 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
- #pragma once
- 
-+#if defined(__GLIBC__)
- #include <printf.h>
-+#endif
- #include <stdarg.h>
- #include <stdio.h>
- #include <sys/types.h>
-diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h
-index b31dfd1..9b7032c 100644
---- a/src/systemd/src/basic/util.h
-+++ b/src/systemd/src/basic/util.h
-@@ -28,6 +28,11 @@
- #include "missing.h"
- #include "time-util.h"
- 
-+#if !defined(__GLIBC__)
-+typedef int (*__compar_fn_t) (const void*, const void*);
-+typedef __compar_fn_t comparison_fn_t;
-+#endif
-+
- size_t page_size(void) _pure_;
- #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
- 
--- 
-2.14.3
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
similarity index 84%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
index 49a0735..5c59208 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
@@ -1,28 +1,29 @@
-From 18f71c1b48730b8602826517f2b5b088283ae948 Mon Sep 17 00:00:00 2001
+From 32dc6cab58912add5bc6495558538953d9344c36 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 31 Mar 2017 16:48:00 -0700
 Subject: [PATCH] sd-lldp.h: Remove net/ethernet.h seems to be over specified
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/systemd/src/libsystemd-network/sd-lldp.c | 1 +
  src/systemd/src/systemd/sd-lldp.h            | 2 +-
  2 files changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libsystemd-network/sd-lldp.c
-index 31e2448..7721cc2 100644
+index 741128e..62914ae 100644
 --- a/src/systemd/src/libsystemd-network/sd-lldp.c
 +++ b/src/systemd/src/libsystemd-network/sd-lldp.c
 @@ -3,6 +3,7 @@
- #include "nm-sd-adapt.h"
+ #include "nm-sd-adapt-core.h"
  
  #include <arpa/inet.h>
 +#include <net/ethernet.h>
  #include <linux/sockios.h>
+ #include <sys/ioctl.h>
  
- #include "sd-lldp.h"
 diff --git a/src/systemd/src/systemd/sd-lldp.h b/src/systemd/src/systemd/sd-lldp.h
-index 3f35eeb..61b0e45 100644
+index bf3afad..4cace87 100644
 --- a/src/systemd/src/systemd/sd-lldp.h
 +++ b/src/systemd/src/systemd/sd-lldp.h
 @@ -18,7 +18,7 @@
@@ -34,6 +35,3 @@
  #include <sys/types.h>
  
  #include "sd-event.h"
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch
new file mode 100644
index 0000000..8d90548
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-basic.patch
@@ -0,0 +1,56 @@
+From ff1a5b849755db67b1778940fff92d6eb8b8b050 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Thu, 22 Mar 2018 17:54:10 +0100
+Subject: [PATCH] Usual fix for musl libc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Stolen from [1] and prettyfied slightly
+
+[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
+---
+ shared/systemd/src/basic/stdio-util.h | 2 ++
+ shared/systemd/src/basic/util.h       | 5 +++++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/shared/systemd/src/basic/stdio-util.h b/shared/systemd/src/basic/stdio-util.h
+index dc67b6e..6336243 100644
+--- a/shared/systemd/src/basic/stdio-util.h
++++ b/shared/systemd/src/basic/stdio-util.h
+@@ -1,7 +1,9 @@
+ /* SPDX-License-Identifier: LGPL-2.1+ */
+ #pragma once
+ 
++#if defined(__GLIBC__)
+ #include <printf.h>
++#endif
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+diff --git a/shared/systemd/src/basic/util.h b/shared/systemd/src/basic/util.h
+index dc33d66..8ee2d64 100644
+--- a/shared/systemd/src/basic/util.h
++++ b/shared/systemd/src/basic/util.h
+@@ -27,6 +27,11 @@
+ #include "macro.h"
+ #include "time-util.h"
+ 
++#if !defined(__GLIBC__)
++typedef int (*__compar_fn_t) (const void*, const void*);
++typedef __compar_fn_t comparison_fn_t;
++#endif
++
+ size_t page_size(void) _pure_;
+ #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
+ 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch
similarity index 88%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch
index c162c1d..419e1be 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-dlopen-configure-ac.patch
@@ -1,4 +1,4 @@
-From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001
+From 7743ea63fbe572b1f82db7d399fe9c5c99521432 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Thu, 22 Mar 2018 18:18:06 +0100
 Subject: [PATCH] musl: dlopen is included so LD_LIBS="" instead of
@@ -14,15 +14,16 @@
 [1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
 ---
  configure.ac | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/configure.ac b/configure.ac
-index 487a266..96ae4f7 100644
+index b914219..1b2b0ff 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -235,6 +235,7 @@ dnl
+@@ -241,6 +241,7 @@ dnl
  dnl Checks for libdl - on certain platforms its part of libc
  dnl
  AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=])
@@ -30,6 +31,3 @@
  AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen")
  
  PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0],
--- 
-2.14.3
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch
similarity index 69%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch
index 9a58c0e..45f607f 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-network-support.patch
@@ -1,4 +1,4 @@
-From 714b4731a238653e9c7d885c0dee10677b0a4df3 Mon Sep 17 00:00:00 2001
+From 70ecbc01874bf2f8603ccbdfda634cac0bb83d93 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Thu, 22 Mar 2018 18:24:07 +0100
 Subject: [PATCH] musl: network support
@@ -13,14 +13,15 @@
 [1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
 ---
- libnm-core/nm-utils.h               | 4 ++++
- src/platform/wifi/nm-wifi-utils.h   | 4 ++++
- src/systemd/src/basic/socket-util.h | 5 +++++
- 3 files changed, 13 insertions(+)
+ libnm-core/nm-utils.h                  | 4 ++++
+ shared/systemd/src/basic/socket-util.h | 6 ++++++
+ src/platform/wifi/nm-wifi-utils.h      | 4 ++++
+ 3 files changed, 14 insertions(+)
 
 diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
-index df9284b..2bcf4b8 100644
+index 2b5baba..976850c 100644
 --- a/libnm-core/nm-utils.h
 +++ b/libnm-core/nm-utils.h
 @@ -30,7 +30,11 @@
@@ -35,8 +36,25 @@
  #include <linux/if_infiniband.h>
  
  #include "nm-core-enum-types.h"
+diff --git a/shared/systemd/src/basic/socket-util.h b/shared/systemd/src/basic/socket-util.h
+index d2246a8..76f257f 100644
+--- a/shared/systemd/src/basic/socket-util.h
++++ b/shared/systemd/src/basic/socket-util.h
+@@ -13,6 +13,12 @@
+ #include <sys/types.h>
+ #include <sys/un.h>
+ 
++#if !defined(__GLIBC__)
++/* SIOCGSTAMPNS from linux/asm-generic.h
++ * for src/systemd/src/libsystemd-network/sd-lldp.c */
++#include <linux/sockios.h>
++#endif
++
+ #include "macro.h"
+ #include "missing_socket.h"
+ #include "sparse-endian.h"
 diff --git a/src/platform/wifi/nm-wifi-utils.h b/src/platform/wifi/nm-wifi-utils.h
-index 705717b..da3edc4 100644
+index 36148b5..d282eb2 100644
 --- a/src/platform/wifi/nm-wifi-utils.h
 +++ b/src/platform/wifi/nm-wifi-utils.h
 @@ -22,7 +22,11 @@
@@ -51,22 +69,3 @@
  
  #include "nm-dbus-interface.h"
  #include "nm-setting-wireless.h"
-diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h
-index d7e2d85..d109c84 100644
---- a/src/systemd/src/basic/socket-util.h
-+++ b/src/systemd/src/basic/socket-util.h
-@@ -11,6 +11,11 @@
- #include <linux/netlink.h>
- #include <linux/if_infiniband.h>
- #include <linux/if_packet.h>
-+#if !defined(__GLIBC__)
-+/* SIOCGSTAMPNS from linux/asm-generic.h
-+ * for src/systemd/src/libsystemd-network/sd-lldp.c */
-+#include <linux/sockios.h>
-+#endif
- 
- #include "macro.h"
- #include "missing.h"
--- 
-2.14.3
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch
similarity index 79%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch
index 9e5c943..525e359 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-musl-process-util.patch
@@ -1,4 +1,4 @@
-From d513c8bfc982dbd976617178b040c512c95710b6 Mon Sep 17 00:00:00 2001
+From 4f2fb1e1f785bad22df8f3d96cb4792acf21f315 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Thu, 25 Oct 2018 09:57:07 +0200
 Subject: [PATCH] musl: process-util
@@ -13,14 +13,15 @@
 [1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
 ---
- src/systemd/src/basic/process-util.c | 9 +++++++++
+ shared/systemd/src/basic/process-util.c | 9 +++++++++
  1 file changed, 9 insertions(+)
 
-diff --git a/src/systemd/src/basic/process-util.c b/src/systemd/src/basic/process-util.c
-index 1412f03..45f5049 100644
---- a/src/systemd/src/basic/process-util.c
-+++ b/src/systemd/src/basic/process-util.c
+diff --git a/shared/systemd/src/basic/process-util.c b/shared/systemd/src/basic/process-util.c
+index b0afb5c..7adc8bd 100644
+--- a/shared/systemd/src/basic/process-util.c
++++ b/shared/systemd/src/basic/process-util.c
 @@ -21,6 +21,9 @@
  #include <sys/wait.h>
  #include <syslog.h>
@@ -31,7 +32,7 @@
  #if 0 /* NM_IGNORED */
  #if HAVE_VALGRIND_VALGRIND_H
  #include <valgrind/valgrind.h>
-@@ -1153,11 +1156,13 @@ void reset_cached_pid(void) {
+@@ -1168,11 +1171,13 @@ void reset_cached_pid(void) {
          cached_pid = CACHED_PID_UNSET;
  }
  
@@ -40,12 +41,12 @@
   * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
   * libpthread, as it is part of glibc anyway. */
  extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
- extern void* __dso_handle __attribute__ ((__weak__));
+ extern void* __dso_handle _weak_;
 +#endif
  
  pid_t getpid_cached(void) {
          static bool installed = false;
-@@ -1186,7 +1191,11 @@ pid_t getpid_cached(void) {
+@@ -1201,7 +1206,11 @@ pid_t getpid_cached(void) {
                           * only half-documented (glibc doesn't document it but LSB does — though only superficially)
                           * we'll check for errors only in the most generic fashion possible. */
  
@@ -57,6 +58,3 @@
                                  /* OOM? Let's try again later */
                                  cached_pid = CACHED_PID_UNSET;
                                  return new_pid;
--- 
-2.14.5
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch
index 6bca95e..211a2da 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch
@@ -1,4 +1,4 @@
-From b3b4fe35018c98ad176719b2d9ffb867974fc7c3 Mon Sep 17 00:00:00 2001
+From 4232a34064e33b52f07cca51b902b93699800f72 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Mon, 16 Apr 2018 14:45:44 +0200
 Subject: [PATCH] musl: avoid further conflicts by including net/ethernet.h
@@ -9,6 +9,7 @@
 Upstream-Status: Pending
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
 ---
  src/systemd/src/systemd/sd-dhcp-client.h  | 2 ++
  src/systemd/src/systemd/sd-dhcp-lease.h   | 2 ++
@@ -17,7 +18,7 @@
  4 files changed, 8 insertions(+)
 
 diff --git a/src/systemd/src/systemd/sd-dhcp-client.h b/src/systemd/src/systemd/sd-dhcp-client.h
-index e388552..9c4dde8 100644
+index bd0d429..c935fe1 100644
 --- a/src/systemd/src/systemd/sd-dhcp-client.h
 +++ b/src/systemd/src/systemd/sd-dhcp-client.h
 @@ -20,7 +20,9 @@
@@ -29,9 +30,9 @@
 +#endif
  #include <netinet/in.h>
  #include <sys/types.h>
- 
+ #include <stdbool.h>
 diff --git a/src/systemd/src/systemd/sd-dhcp-lease.h b/src/systemd/src/systemd/sd-dhcp-lease.h
-index 2a60145..19d1814 100644
+index d299c79..991e67e 100644
 --- a/src/systemd/src/systemd/sd-dhcp-lease.h
 +++ b/src/systemd/src/systemd/sd-dhcp-lease.h
 @@ -19,7 +19,9 @@
@@ -45,7 +46,7 @@
  #include <sys/types.h>
  
 diff --git a/src/systemd/src/systemd/sd-dhcp6-client.h b/src/systemd/src/systemd/sd-dhcp6-client.h
-index fa36dca..2d25010 100644
+index 43d38f5..57ab487 100644
 --- a/src/systemd/src/systemd/sd-dhcp6-client.h
 +++ b/src/systemd/src/systemd/sd-dhcp6-client.h
 @@ -20,7 +20,9 @@
@@ -55,9 +56,9 @@
 +#if defined(__GLIBC__)
  #include <net/ethernet.h>
 +#endif
- #include <stdbool.h>
  #include <sys/types.h>
  
+ #include "sd-dhcp6-lease.h"
 diff --git a/src/systemd/src/systemd/sd-ipv4ll.h b/src/systemd/src/systemd/sd-ipv4ll.h
 index 71bd4cf..1c667ba 100644
 --- a/src/systemd/src/systemd/sd-ipv4ll.h
@@ -72,6 +73,3 @@
  #include <netinet/in.h>
  
  #include "sd-event.h"
--- 
-2.14.5
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch
similarity index 60%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch
index 023a4d9..8858101 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0008-Add-a-strndupa-replacement-for-musl.patch
@@ -1,4 +1,4 @@
-From 6db6596e450062601d18b2ae812a4a58d2e03a53 Mon Sep 17 00:00:00 2001
+From cdd69321ec97ed19e66a747a968a1637a251b9e6 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Mon, 16 Apr 2018 15:07:20 +0200
 Subject: [PATCH] Add a strndupa replacement for musl
@@ -9,15 +9,16 @@
 Upstream-Status: Pending
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
 ---
- src/systemd/src/basic/in-addr-util.c | 1 +
- src/systemd/src/basic/string-util.h  | 5 +++++
+ shared/systemd/src/basic/in-addr-util.c | 1 +
+ shared/systemd/src/basic/string-util.h  | 5 +++++
  2 files changed, 6 insertions(+)
 
-diff --git a/src/systemd/src/basic/in-addr-util.c b/src/systemd/src/basic/in-addr-util.c
-index 2a02d90..a57c360 100644
---- a/src/systemd/src/basic/in-addr-util.c
-+++ b/src/systemd/src/basic/in-addr-util.c
+diff --git a/shared/systemd/src/basic/in-addr-util.c b/shared/systemd/src/basic/in-addr-util.c
+index 5ced350..c6b52b8 100644
+--- a/shared/systemd/src/basic/in-addr-util.c
++++ b/shared/systemd/src/basic/in-addr-util.c
 @@ -13,6 +13,7 @@
  #include "in-addr-util.h"
  #include "macro.h"
@@ -26,11 +27,11 @@
  #include "util.h"
  
  bool in4_addr_is_null(const struct in_addr *a) {
-diff --git a/src/systemd/src/basic/string-util.h b/src/systemd/src/basic/string-util.h
-index 4c94b18..a6dc446 100644
---- a/src/systemd/src/basic/string-util.h
-+++ b/src/systemd/src/basic/string-util.h
-@@ -26,6 +26,11 @@
+diff --git a/shared/systemd/src/basic/string-util.h b/shared/systemd/src/basic/string-util.h
+index 38070ab..6b918e0 100644
+--- a/shared/systemd/src/basic/string-util.h
++++ b/shared/systemd/src/basic/string-util.h
+@@ -27,6 +27,11 @@
  #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0)
  #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0)
  
@@ -42,6 +43,3 @@
  int strcmp_ptr(const char *a, const char *b) _pure_;
  
  static inline bool streq_ptr(const char *a, const char *b) {
--- 
-2.14.3
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb
similarity index 77%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb
index f21600e..bdf60ee 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.14.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.16.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
                     file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
-                    file://docs/api/html/license.html;md5=2d56a1b0c42e388aa86aef59b154e8c3 \
+                    file://docs/api/html/license.html;md5=233931303ef80eded167add1f60a50c1 \
 "
 
 DEPENDS = " \
@@ -16,7 +16,6 @@
     util-linux \
     libndp \
     libnewt \
-    polkit \
     jansson \
     curl \
 "
@@ -25,19 +24,19 @@
 
 SRC_URI = " \
     ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
-    file://0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
-    file://0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
-    file://0003-Do-not-create-settings-settings-property-documentati.patch \
-    file://0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch \
-    file://musl/0001-musl-basic.patch \
-    file://musl/0002-musl-dlopen-configure-ac.patch \
-    file://musl/0003-musl-network-support.patch \
-    file://musl/0004-musl-process-util.patch \
-    file://musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch \
-    file://musl/0006-Add-a-strndupa-replacement-for-musl.patch \
+    file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
+    file://0002-Do-not-create-settings-settings-property-documentati.patch \
+    file://musl/0001-Do-not-include-net-ethernet.h-and-linux-if_ether.h.patch \
+    file://musl/0002-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
+    file://musl/0003-musl-basic.patch \
+    file://musl/0004-musl-dlopen-configure-ac.patch \
+    file://musl/0005-musl-network-support.patch \
+    file://musl/0006-musl-process-util.patch \
+    file://musl/0007-musl-avoid-further-conflicts-by-including-net-ethern.patch \
+    file://musl/0008-Add-a-strndupa-replacement-for-musl.patch \
 "
-SRC_URI[md5sum] = "54ce62f0aa18ef6c5e754eaac47494ac"
-SRC_URI[sha256sum] = "35a3ede4c7d12d6212033c9e44cb82b7692f38063b53a067567f02f5937c8c18"
+SRC_URI[md5sum] = "10abacaafb162a67d2942adf03e7e9e4"
+SRC_URI[sha256sum] = "8e962833b6ca03edda1bc57ed6614a7b8c2339531b44acef098d05f2324c5d2c"
 
 UPSTREAM_CHECK_URI = "${GNOME_MIRROR}/NetworkManager/1.10/"
 UPSTREAM_CHECK_REGEX = "NetworkManager\-(?P<pver>1\.10(\.\d+)+).tar.xz"
@@ -69,13 +68,13 @@
 PACKAGECONFIG ??= "nss ifupdown dhclient dnsmasq \
     ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \
 "
 PACKAGECONFIG[systemd] = " \
-    --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
+    --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd, \
     --without-systemdsystemunitdir, \
-    polkit \
 "
+PACKAGECONFIG[polkit] = "--enable-polkit --enable-polkit-agent,--disable-polkit --disable-polkit-agent,polkit"
 PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
 # consolekit is not picked by shlibs, so add it to RDEPENDS too
 PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
@@ -137,7 +136,7 @@
     ${mandir}/man1/nmtui* \
 "
 
-SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
+SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'NetworkManager.service NetworkManager-dispatcher.service', '', d)}"
 
 do_install_append() {
     rm -rf ${D}/run ${D}${localstatedir}/run
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
index c944144..050a283 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
@@ -2,7 +2,11 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad"
 
+SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git"
+SRCREV = "6487ee8763e1b6345718684909aca970befbc49d"
+
 DEPENDS = "vpnc libxml2 krb5 gettext-native"
+RDEPENDS_${PN} = "bash python"
 
 PACKAGECONFIG ??= "gnutls lz4 libproxy"
 
@@ -14,10 +18,7 @@
 # not config defaults
 PACKAGECONFIG[pcsc-lite] = "--with-libpcsclite,--without-libpcsclite,pcsc-lite,"
 
-PV = "7.08"
-
-SRCREV = "9697bea0e50952cab57063238b43a7099e498cbb"
-SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git"
+PV = "8.02"
 
 S = "${WORKDIR}/git"
 
@@ -25,3 +26,8 @@
 
 EXTRA_OECONF += "--with-vpnc-script=${SYSROOT_DESTDIR}${sysconfdir}/vpnc/vpnc-script \
                  --disable-static"
+
+do_configure_append() {
+    # script has /usr/bin/python2 path hardcoded
+    sed -i -e 's=python2\.*=python=g' ${S}/trojans/tncc-wrapper.py
+}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb
similarity index 70%
rename from meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb
index 4e41aa5..3aa41f1 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.1.bb
@@ -4,8 +4,8 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=8d8bac174bf8422b151200e6cc78ebe4"
 
-SRC_URI[md5sum] = "5fc644a65463031295c6b7dd51a0f1bd"
-SRC_URI[sha256sum] = "bc36507506ad29bfdac941b0987ebd1cc9633c9a9291d7378e229e4515a0a517"
+SRC_URI[md5sum] = "f638d854a3639fb37c0e06d1092a771e"
+SRC_URI[sha256sum] = "aef1e34d98d7bec7cc368e0ca0f2e97493f9b5ebe6d7103f8f6460cfca3dc6fc"
 
 PYPI_PACKAGE = "python-networkmanager"
 inherit pypi setuptools
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb
index f1aaeb8..e86ed96 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.8.4.bb
@@ -193,15 +193,15 @@
 
 python samba_populate_packages() {
     def module_hook(file, pkg, pattern, format, basename):
-        pn = d.getVar('PN', True)
+        pn = d.getVar('PN')
         d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg)
 
-    mlprefix = d.getVar('MLPREFIX', True) or ''
+    mlprefix = d.getVar('MLPREFIX') or ''
     pam_libdir = d.expand('${base_libdir}/security')
     pam_pkgname = mlprefix + 'pam-plugin%s'
     do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
 
-    libdir = d.getVar('libdir', True)
+    libdir = d.getVar('libdir')
     do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
     pkglibdir = '%s/samba' % libdir
     do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb
index a99138d..c2eb95f 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.11.1.bb
@@ -72,7 +72,7 @@
     mkdir -p ${D}${localstatedir}/log/snort
     install -d ${D}/var/log/snort
 
-    sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
+    sed -i -e 's|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
 }
 
 FILES_${PN} += " \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.10.24.bb b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2019.03.01.bb
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.10.24.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2019.03.01.bb
index e1aa9a5..7b7de58 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.10.24.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2019.03.01.bb
@@ -5,8 +5,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
 
 SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "b81bd1f6525a4806a707881aa3dda63f"
-SRC_URI[sha256sum] = "0d3e845ac77d21aac9b88642c3dd043a83e3920d706b63d5e5c31dffdbec9116"
+SRC_URI[md5sum] = "b5eb2d0cc23f5e495a59405e34ce437f"
+SRC_URI[sha256sum] = "3a4e6f7006599bc5764f86e1e86422710da13ad80e0242147b61c6855ebc915f"
 
 inherit bin_package allarch
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch
deleted file mode 100644
index f304d93..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From fb490136cf8f2456cfe13b0b4f796e6c155e75dc Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Wed, 30 Aug 2017 03:02:32 -0400
-Subject: [PATCH] fix no rule to make cyassl/options.h
-
-Upstream-Status: Pending
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 395d75d..d4a3880 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3684,6 +3684,7 @@ AC_CONFIG_FILES([wolfssl/options.h])
- #fi
- AC_CONFIG_FILES([support/wolfssl.pc])
- AC_CONFIG_FILES([rpm/spec])
-+AC_CONFIG_FILES([cyassl/options.h])
- 
- AX_CREATE_GENERIC_CONFIG
- AX_AM_JOBSERVER([yes])
--- 
-2.8.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb
deleted file mode 100644
index dc9094d..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "wolfSSL Lightweight, Embedded SSL Library"
-DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written in C and \
-               optimized for embedded and RTOS environments. It can be \
-               Up to 20 times smaller than OpenSSL while still supporting \
-               a full TLS 1.2 client and server."
-HOMEPAGE = "http://www.wolfssl.com/yaSSL/Products-wolfssl.html"
-BUGTRACKER = "http://github.com/wolfssl/wolfssl/issues"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PROVIDES += "cyassl"
-RPROVIDES_${PN} = "cyassl"
-
-S = "${WORKDIR}/git"
-SRCREV = "1196a3b64d9fabffc8273b87f6f69ac0e75d2eb7"
-SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https; \
-           file://0001-fix-no-rule-to-make-cyassl-options.h.patch \
-          "
-
-inherit autotools
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb
new file mode 100644
index 0000000..0a0a607
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.15.7.bb
@@ -0,0 +1,21 @@
+SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library"
+DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \
+               in C and optimized for embedded and RTOS environments. It can \
+               be up to 20 times smaller than OpenSSL while still supporting \
+               a full TLS client and server, up to TLS 1.3"
+HOMEPAGE = "https://www.wolfssl.com/products/wolfssl"
+BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PROVIDES += "cyassl"
+RPROVIDES_${PN} = "cyassl"
+
+SRC_URI = "https://www.wolfssl.com/wolfssl-${PV}.zip"
+SRC_URI[md5sum] = "6ec08c09e3f51cccbb1686b4fd45f92f"
+SRC_URI[sha256sum] = "4cc318c49580d3b9c361fe258fac6106624aa744f1d34e03977b587766a753ee"
+
+inherit autotools
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-openembedded/meta-networking/recipes-core/images/meta-networking-image-base.bb b/meta-openembedded/meta-networking/recipes-core/images/meta-networking-image-base.bb
new file mode 100644
index 0000000..eaf1409
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-core/images/meta-networking-image-base.bb
@@ -0,0 +1,7 @@
+SUMMARY = "meta-networking build test image"
+
+IMAGE_INSTALL = "packagegroup-core-boot"
+
+LICENSE = "MIT"
+
+inherit core-image
diff --git a/meta-openembedded/meta-networking/recipes-core/images/meta-networking-image.bb b/meta-openembedded/meta-networking/recipes-core/images/meta-networking-image.bb
new file mode 100644
index 0000000..f4c7401
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-core/images/meta-networking-image.bb
@@ -0,0 +1,3 @@
+require  meta-networking-image-base.bb
+
+IMAGE_INSTALL += "packagegroup-meta-networking"
diff --git a/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
new file mode 100644
index 0000000..63ad34c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
@@ -0,0 +1,122 @@
+SUMMARY = "Meta-networking packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+    packagegroup-meta-networking \
+    packagegroup-meta-networking-connectivity \
+    packagegroup-meta-networking-daemons  \
+    packagegroup-meta-networking-devtools \
+    packagegroup-meta-networking-extended \
+    packagegroup-meta-networking-filter \
+    packagegroup-meta-networking-irc \
+    packagegroup-meta-networking-kernel \
+    packagegroup-meta-networking-netkit \
+    packagegroup-meta-networking-protocols \
+    packagegroup-meta-networking-support \
+'
+
+RDEPENDS_packagegroup-meta-networking = "\
+    packagegroup-meta-networking-connectivity \
+    packagegroup-meta-networking-daemons  \
+    packagegroup-meta-networking-devtools \
+    packagegroup-meta-networking-extended \
+    packagegroup-meta-networking-filter \
+    packagegroup-meta-networking-irc \
+    packagegroup-meta-networking-kernel \
+    packagegroup-meta-networking-netkit \
+    packagegroup-meta-networking-protocols \
+    packagegroup-meta-networking-support \
+    "
+
+RDEPENDS_packagegroup-meta-networking-connectivity = "\
+    openconnect ez-ipupdate mosquitto sethdlc crda \
+    dibbler-server dibbler-client dibbler-requestor dibbler-relay \
+    libdnet ufw civetweb freeradius kea daq \
+    mbedtls relayd snort dhcpcd rdate vlan umip vpnc \
+    inetutils wolfssl lftp miniupnpd networkmanager \
+    networkmanager-openvpn rdist nanomsg python-networkmanager \
+    wireless-regdb \
+    ${@bb.utils.contains("DISTRO_FEATURE", "bluez5 x11", "blueman", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURE", "pam", "samba", "", d)} \
+    "
+
+RDEPENDS_packagegroup-meta-networking-daemons = "\
+    ippool radvd autofs keepalived proftpd openhpi lldpd \
+    ptpd igmpproxy opensaf squid \
+    atftp postfix iscsi-initiator-utils vsftpd cyrus-sasl \
+    pure-ftpd vblade tftp-hpa ncftp \
+    ${@bb.utils.contains("DISTRO_FEATURE", "systemd", "networkd-dispatcher", "", d)} \
+    "
+
+RDEPENDS_packagegroup-meta-networking-devtools = "\
+    python-ldap grpc \
+    "
+
+RDEPENDS_packagegroup-meta-networking-extended = "\
+    corosync \
+    ${@bb.utils.contains("DISTRO_FEATURE", "systemd", "dlm", "", d)} \
+    "
+
+RDEPENDS_packagegroup-meta-networking-filter = "\
+    ebtables conntrack-tools libnetfilter-queue \
+    libnetfilter-conntrack libnetfilter-cthelper libnetfilter-acct \
+    libnetfilter-cttimeout libnetfilter-log nfacct \
+    arno-iptables-firewall libnftnl nftables \
+    libnfnetlink \
+    " 
+
+RDEPENDS_packagegroup-meta-networking-irc = "\
+    znc \
+    "
+
+RDEPENDS_packagegroup-meta-networking-kernel = "\
+    wireguard-module wireguard-tools \
+    "
+
+RDEPENDS_packagegroup-meta-networking-netkit = "\
+    netkit-rwho-client netkit-rwho-server netkit-rsh-client netkit-rsh-server \
+    netkit-telnet netkit-tftp-client netkit-tftp-server \
+    netkit-ftp netkit-rusers-client netkit-rusers-server netkit-rpc \
+    "
+
+RDEPENDS_packagegroup-meta-networking-protocols = "\
+    tsocks freediameter xl2tpd babeld mdns net-snmp \
+    quagga pptp-linux zeroconf nopoll openflow rp-pppoe \
+    radiusclient-ng openl2tp usrsctp \
+    ${@bb.utils.contains("DISTRO_FEATURE", "pam", "dante", "", d)} \
+    "
+
+RDEPENDS_packagegroup-meta-networking-support = "\
+    ncp ndisc6 mtr tinyproxy ssmping ntp \
+    wpan-tools bridge-utils ifenslave celt051 pimd \
+    nbd-client nbd-server nbd-trdump \
+    phytool fwknop htpdate tcpreplay ipsec-tools \
+    traceroute geoip-perl geoip geoipupdate esmtp \
+    libtdb netcf dnsmasq curlpp openipmi drbd-utils \
+    drbd tunctl dovecot ipvsadm stunnel chrony spice-protocol \
+    usbredir ntop wireshark tnftp lksctp-tools \
+    cim-schema-docs cim-schema-final cim-schema-exper \
+    libmemcached smcroute libtevent ipcalc c-ares uftp \
+    ntimed linux-atm ssmtp openvpn lowpan-tools rdma-core \
+    iftop aoetools tcpslice tcpdump libtalloc memcached nuttcp netcat \
+    netcat-openbsd fetchmail yp-tools ypbind-mt yp-tools \
+    arptables macchanger nghttp2 strongswan fping \
+    dnssec-conf libesmtp cifs-utils open-isns \
+    ${@bb.utils.contains("DISTRO_FEATURE", "pam", "libldb", "", d)} \
+    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "non-commercial", "netperf", "", d)} \
+    ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "spice", "", d)} \
+    "
+
+
+RDEPENDS_packagegroup-meta-networking-support_remove_mipsarch = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_mips64 = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_mips64el = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_powerpc = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_riscv64 = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_riscv32 = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_armv5 = "spice-protocol"
+RDEPENDS_packagegroup-meta-networking-support_remove_aarch64 = "spice-protocol memcached"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
index f3f25f4..410827b 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
@@ -1,21 +1,26 @@
-From 6d24365f0828185fd1bb4d199209ca07eb95c41d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 24 Aug 2018 06:24:36 +0000
-Subject: [PATCH] Do not hardcode path for pkg.m4
+From a27217a5437da313d251b4a765bf7cb60ffaa62d Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 15:27:47 +0800
+Subject: [PATCH] From 6d24365f0828185fd1bb4d199209ca07eb95c41d Mon Sep 17
+ 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 24 Aug 2018
+ 06:24:36 +0000 Subject: [PATCH] Do not hardcode path for pkg.m4
 
 Upstream-Status: Pending
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+update patch to version 5.1.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  configure.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.in b/configure.in
-index 50aed15..f81767c 100644
+index 493b9f1..268d06b 100644
 --- a/configure.in
 +++ b/configure.in
 @@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl
- AC_INIT(.autofs-5.1.4)
+ AC_INIT(.autofs-5.1.5)
  
  # for pkg-config macros
 -m4_include([/usr/share/aclocal/pkg.m4])
@@ -24,5 +29,5 @@
  #
  # autofs installs by default in /usr
 -- 
-1.9.1
+2.7.4
 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch
index 469027a..e7fdd10 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch
@@ -1,22 +1,26 @@
-From 557ca399f4b3a397f20bb147ec6dc4ab9732dd1e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 19:12:10 -0700
-Subject: [PATCH] Replace __S_IEXEC with S_IEXEC
+From 096e33743158e0e8c04d60d01cc66e2945d79777 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 16:52:35 +0800
+Subject: [PATCH] From 557ca399f4b3a397f20bb147ec6dc4ab9732dd1e Mon Sep 17
+ 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 31 Mar 2017
+ 19:12:10 -0700 Subject: [PATCH] Replace __S_IEXEC with S_IEXEC
 
 S_IEXEC is portable
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
+update patch to version 5.1.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- daemon/lookup.c        | 4 ++--
+ daemon/lookup.c        | 6 +++---
  modules/lookup_multi.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
+ 2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/daemon/lookup.c b/daemon/lookup.c
-index 201ccbb..d821db8 100644
+index 18df935..d35d484 100644
 --- a/daemon/lookup.c
 +++ b/daemon/lookup.c
-@@ -366,7 +366,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source
+@@ -382,7 +382,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source
  	if (!S_ISREG(st.st_mode))
  		return NSS_STATUS_NOTFOUND;
  
@@ -25,7 +29,7 @@
  		type = src_prog;
  	else
  		type = src_file;
-@@ -856,7 +856,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_
+@@ -942,7 +942,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_
  	if (!S_ISREG(st.st_mode))
  		return NSS_STATUS_NOTFOUND;
  
@@ -34,8 +38,17 @@
  		type = src_prog;
  	else
  		type = src_file;
+@@ -1118,7 +1118,7 @@ static struct map_source *lookup_get_map_source(struct master_mapent *entry)
+ 	if (!S_ISREG(st.st_mode))
+ 		return NULL;
+ 
+-	if (st.st_mode & __S_IEXEC)
++	if (st.st_mode & S_IEXEC)
+ 		type = "program";
+ 	else
+ 		type = "file";
 diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c
-index fadd2ea..3ecda6d 100644
+index bb9f88c..cf109de 100644
 --- a/modules/lookup_multi.c
 +++ b/modules/lookup_multi.c
 @@ -247,7 +247,7 @@ static struct lookup_mod *nss_open_lookup(const char *format, int argc, const ch
@@ -47,3 +60,6 @@
  				type = src_prog;
  			else
  				type = src_file;
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch
deleted file mode 100644
index 1d5c3e1..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 2cbc576ea1fbd1cbf4579d64b30e41d762084e7f Mon Sep 17 00:00:00 2001
-From: "yanjun.zhu" <yanjun.zhu@windriver.com>
-Date: Tue, 15 Jan 2013 12:45:44 +0800
-Subject: [PATCH] autofs: do not check for modprobe
-
-Description: Loading autofs module is #ifdef'ed in the source, so
- there is no need to check for /proc (which is only used
- to load module) or modprobe.  Both modprobe and /proc
- are always in the fixed location so there's no need to
- check for these to start with.
-
-Upstream-Status: Backport [1]
-[1] http://www.spinics.net/lists/autofs/msg00139.html
-
----
- configure.in        |  6 ------
- daemon/module.c     |  3 +++
- include/automount.h | 11 +++--------
- 3 files changed, 6 insertions(+), 14 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 44a1c8b..b226236 100644
---- a/configure.in
-+++ b/configure.in
-@@ -34,11 +34,6 @@ AC_MSG_CHECKING([for binaries in])
- AC_MSG_RESULT([$searchpath])
- 
- #
--# Make sure we have "/proc"
--#
--AF_LINUX_PROCFS()
--
--#
- # Location of init.d directory?
- #
- AF_INIT_D()
-@@ -142,7 +137,6 @@ AF_PATH_INCLUDE(UMOUNT, umount, /bin/umount, $searchpath)
- AF_PATH_INCLUDE(E2FSCK, fsck.ext2 e2fsck, , $searchpath)
- AF_PATH_INCLUDE(E3FSCK, fsck.ext3 e3fsck, , $searchpath)
- AF_PATH_INCLUDE(E4FSCK, fsck.ext4 e4fsck, , $searchpath)
--AF_PATH_INCLUDE(MODPROBE, modprobe, , $searchpath)
- 
- AF_CHECK_PROG(LEX, flex lex, , $searchpath)
- AF_CHECK_PROG(YACC, bison, , $searchpath)
-diff --git a/daemon/module.c b/daemon/module.c
-index bed8f7a..e41a98e 100644
---- a/daemon/module.c
-+++ b/daemon/module.c
-@@ -19,6 +19,8 @@
- #include "automount.h"
- #include "nsswitch.h"
- 
-+#if 0
-+/* see comment in daemon/automount.c around load_autofs4_module() call */
- int load_autofs4_module(void)
- {
- 	FILE *fp;
-@@ -53,6 +55,7 @@ int load_autofs4_module(void)
- 
- 	return 1;
- }
-+#endif
- 
- int open_lookup(const char *name, const char *err_prefix, const char *mapfmt,
- 		int argc, const char *const *argv, struct lookup_mod **lookup)
-diff --git a/include/automount.h b/include/automount.h
-index c0f5fbf..cc336ad 100644
---- a/include/automount.h
-+++ b/include/automount.h
-@@ -51,16 +51,11 @@
- #error Failed to locate umount(8)!
- #endif
- 
--#ifndef HAVE_MODPROBE
--#error Failed to locate modprobe(8)!
--#endif
--
--#ifndef HAVE_LINUX_PROCFS
--#error Failed to verify existence of procfs filesystem!
--#endif
--
-+#if 0
-+/* see comment in daemon/automount.c around load_autofs4_module() call */
- #define FS_MODULE_NAME  "autofs4"
- int load_autofs4_module(void);
-+#endif
- 
- /* The -s (sloppy) option to mount is good, if we have it... */
- 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch
index 1c7b119..be750ab 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch
@@ -1,7 +1,9 @@
-From e3ae56cf0bb4063c31295f45d04e3c504f4b6cc7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Apr 2017 20:41:25 -0700
-Subject: [PATCH] autofs: Upgrade to 5.1.2 release
+From 602f9ca83c2bdbf511bcb178fcb4b9fc54da955f Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 15:20:46 +0800
+Subject: [PATCH] From e3ae56cf0bb4063c31295f45d04e3c504f4b6cc7 Mon Sep 17
+ 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 24 Apr 2017
+ 20:41:25 -0700 Subject: [PATCH] autofs: Upgrade to 5.1.2 release
 
 Use pkg-config first to look for external libnsl which is now
 split out from glibc, if it does not exist then see if its provided
@@ -9,20 +11,27 @@
 
 -Khem
 
+Upstream-Status: Pending
+
+update patch to version 5.1.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  configure.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.in b/configure.in
-index 9cf73b8..1016c71 100644
+index 76ecb40..493b9f1 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -186,7 +186,7 @@ fi
- #
- # glibc/libc 6 new libraries
- #
--AC_CHECK_LIB(nsl, yp_match, LIBNSL="-lnsl")
-+PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[LIBNSL="-lnsl"],[LIBNSL=""])])
- AC_SUBST(LIBNSL)
+@@ -238,7 +238,7 @@ AC_SUBST(LIBCLOCK_GETTIME)
  
- AC_CHECK_LIB(resolv, res_query, LIBRESOLV="-lresolv")
+ PKG_CHECK_MODULES([NSL],[libnsl],,
+ [
+-AC_CHECK_LIB(nsl, yp_match, NSL_LIBS="-lnsl")
++PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[LIBNSL="-lnsl"],[LIBNSL=""])])
+ AC_SUBST(NSL_LIBS)
+ NSL_CFLAGS=""
+ ])
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch
index 3d0c6bd..d1f9f34 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch
@@ -1,22 +1,27 @@
-From dabcbdae38038a8e4ad2c4286112381c407c5ce7 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Tue, 19 Aug 2014 11:31:35 +0800
-Subject: [PATCH] using pkg-config to detect libxml-2.0 and krb5
+From dd90a690f95569b999b8ac9ab57e834b3421dcbb Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 15:19:07 +0800
+Subject: [PATCH] From dabcbdae38038a8e4ad2c4286112381c407c5ce7 Mon Sep 17
+ 00:00:00 2001 From: Roy Li <rongqing.li@windriver.com> Date: Tue, 19 Aug 2014
+ 11:31:35 +0800 Subject: [PATCH] using pkg-config to detect libxml-2.0 and
+ krb5
 
-Upstream-status: Pending
+Upstream-Status: Pending
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
 
+update patch to 5.1.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  configure.in | 16 ++++++++++++++--
  1 file changed, 14 insertions(+), 2 deletions(-)
 
 diff --git a/configure.in b/configure.in
-index b226236..9cf73b8 100644
+index f5fbb35..76ecb40 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -162,8 +162,20 @@ if test x$enable_sloppy_mount = xyes; then
- fi
+@@ -211,8 +211,20 @@ fi
+ AC_SUBST(ENABLE_FEDFS)
  
  # LDAP SASL auth needs libxml and Kerberos
 -AF_CHECK_LIBXML()
@@ -38,3 +43,6 @@
  
  AC_SEARCH_LIBS([versionsort],[])
  if test "$ac_cv_search_versionsort" = "no"; then
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.5.bb
similarity index 90%
rename from meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb
rename to meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.5.bb
index 8a1bcad..9e43549 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.4.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.5.bb
@@ -13,7 +13,6 @@
            file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \
            file://no-bash.patch \
            file://cross.patch \
-           file://autofs-5.0.7-do-not-check-for-modprobe.patch \
            file://fix_disable_ldap.patch \
            file://autofs-5.0.7-fix-lib-deps.patch \
            file://add-the-needed-stdarg.h.patch \
@@ -27,8 +26,10 @@
            file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
            file://0001-Do-not-hardcode-path-for-pkg.m4.patch \
            "
-SRC_URI[md5sum] = "17bc9d371cf39d99f400ebadfc2289bb"
-SRC_URI[sha256sum] = "8d1c9964c8286ccb08262ad47c60bb6343492902def5399fd36d79a0ccb0e718"
+
+
+SRC_URI[md5sum] = "03b13168ec7bd66a6f2d5f6fea705eee"
+SRC_URI[sha256sum] = "86a8e56ea9d72bb53ff8cdfeefb5cafe983592c6b0178fb99c4a731e59879181"
 
 UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/"
 
@@ -62,6 +63,9 @@
 }
 
 do_install_append () {
+    # samples have been removed from SUBDIRS from 5.1.5, need to install separately
+    oe_runmake 'DESTDIR=${D}' install_samples
+
     if [ -d ${D}/run ]; then
         rmdir ${D}/run
     fi
diff --git a/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb b/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
deleted file mode 100644
index 5424dc4..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "simple dynamic multicast routing daemon that only uses IGMP signalling"
-HOMEPAGE = "http://sourceforge.net/projects/igmpproxy/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1e995e2799bb0d27d63069b97f805420"
-
-SRC_URI = "http://sourceforge.net/projects/igmpproxy/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
-           file://0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch \
-           "
-
-SRC_URI[md5sum] = "c56f41ec195bc1fe016369bf74efc5a1"
-SRC_URI[sha256sum] = "ee18ff3d8c3ae3a29dccb7e5eedf332337330020168bd95a11cece8d7d7ee6ae"
-
-inherit autotools pkgconfig
-
-CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.2.1.bb b/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.2.1.bb
new file mode 100644
index 0000000..c99ebe0
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.2.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "simple dynamic multicast routing daemon that only uses IGMP signalling"
+HOMEPAGE = "http://sourceforge.net/projects/igmpproxy/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=432040ff3a55670c1dec0c32b209ad69"
+
+SRC_URI = "https://github.com/pali/igmpproxy/releases/download/${PV}/igmpproxy-${PV}.tar.gz \
+           file://0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch \
+"
+SRC_URI[md5sum] = "3a9c2cb42c1f5ee0cb769a4884545641"
+SRC_URI[sha256sum] = "d351e623037390f575c1203d9cbb7ba33a8bdef85a3c5e1d2901c5a2a38449a1"
+
+inherit autotools pkgconfig
+
+CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch
new file mode 100644
index 0000000..f945c63
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Fix-i586-build-issues-with-string-length-overflow.patch
@@ -0,0 +1,115 @@
+From 24ce8f62e042e69497e1299212504c356179e15b Mon Sep 17 00:00:00 2001
+From: Lee Duncan <lduncan@suse.com>
+Date: Tue, 6 Nov 2018 11:16:06 -0800
+Subject: [PATCH] Fix i586 build issues with string length overflow.
+
+Gcc7 warns of possible string print overflow, on i586,
+when printing password length (via a macro), generating
+errors like:
+
+[   59s]   ^~~~~~~~~~~~~~~~~~~~
+[   59s] In file included from /usr/include/stdio.h:862:0,
+[   59s]                  from idbm.h:27,
+[   59s]                  from context.h:22,
+[   59s]                  from idbm.c:59:
+[   59s] /usr/include/bits/stdio2.h:64:10: note:
+'__builtin___snprintf_chk' output between 2 and 11 bytes into a
+destination of size 8
+[   59s]    return __builtin___snprintf_chk (__s, __n,
+__USE_FORTIFY_LEVEL - 1,
+[   59s]           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~
+[   59s]         __bos (__s), __fmt, __va_arg_pack ());
+[   59s]         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[   59s] cc1: all warnings being treated as errors
+[   59s] make[1]: *** [<builtin>: idbm.o] Error 1
+[   59s] make[1]: Leaving directory
+
+The fix is to limit the size of the string printed, so that no
+overflow is possible.
+
+The print macros in usr/idbm.c were updated, as well, to match
+the newer version in libopeniscsiusr/idbm.c, also to help the
+i586 build.
+
+Upstream-Status: Backport[https://github.com/open-iscsi/open-iscsi/commit/24ce8f62e042e69497e1299212504c356179e15b]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ libopeniscsiusr/idbm.c |  2 +-
+ usr/idbm.c             | 11 ++++++-----
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
+index 7724de2..055dd9a 100644
+--- a/libopeniscsiusr/idbm.c
++++ b/libopeniscsiusr/idbm.c
+@@ -676,7 +676,7 @@ updated:
+ 	if (!passwd_done && !strcmp(#_param, name)) { \
+ 		passwd_done = 1; \
+ 		name = #_param "_length"; \
+-		snprintf(passwd_len, 8, "%d", (int)strlen(value)); \
++		snprintf(passwd_len, 8, "%.7d", (int)strlen(value) & 0xffff); \
+ 		value = passwd_len; \
+ 		goto setup_passwd_len; \
+ 	}
+diff --git a/usr/idbm.c b/usr/idbm.c
+index a0207e2..89a6c27 100644
+--- a/usr/idbm.c
++++ b/usr/idbm.c
+@@ -30,6 +30,7 @@
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <sys/file.h>
++#include <inttypes.h>
+ 
+ #include "idbm.h"
+ #include "idbm_fields.h"
+@@ -65,7 +66,7 @@ static struct idbm *db;
+ #define __recinfo_int(_key, _info, _rec, _name, _show, _n, _mod) do { \
+ 	_info[_n].type = TYPE_INT; \
+ 	strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
+-	snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
++	snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIi32, _rec->_name); \
+ 	_info[_n].data = &_rec->_name; \
+ 	_info[_n].data_len = sizeof(_rec->_name); \
+ 	_info[_n].visible = _show; \
+@@ -76,7 +77,7 @@ static struct idbm *db;
+ #define __recinfo_uint8(_key, _info, _rec, _name, _show, _n, _mod) do { \
+ 	_info[_n].type = TYPE_UINT8; \
+ 	strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
+-	snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
++	snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIu8, _rec->_name); \
+ 	_info[_n].data = &_rec->_name; \
+ 	_info[_n].data_len = sizeof(_rec->_name); \
+ 	_info[_n].visible = _show; \
+@@ -87,7 +88,7 @@ static struct idbm *db;
+ #define __recinfo_uint16(_key, _info, _rec, _name, _show, _n, _mod) do { \
+ 	_info[_n].type = TYPE_UINT16; \
+ 	strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
+-	snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
++	snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIu16, _rec->_name); \
+ 	_info[_n].data = &_rec->_name; \
+ 	_info[_n].data_len = sizeof(_rec->_name); \
+ 	_info[_n].visible = _show; \
+@@ -98,7 +99,7 @@ static struct idbm *db;
+ #define __recinfo_uint32(_key, _info, _rec, _name, _show, _n, _mod) do { \
+ 	_info[_n].type = TYPE_UINT32; \
+ 	strlcpy(_info[_n].name, _key, NAME_MAXVAL); \
+-	snprintf(_info[_n].value, VALUE_MAXVAL, "%d", _rec->_name); \
++	snprintf(_info[_n].value, VALUE_MAXVAL, "%" PRIu32, _rec->_name); \
+ 	_info[_n].data = &_rec->_name; \
+ 	_info[_n].data_len = sizeof(_rec->_name); \
+ 	_info[_n].visible = _show; \
+@@ -1041,7 +1042,7 @@ updated:
+ 	if (!passwd_done && !strcmp(#_param, name)) { \
+ 		passwd_done = 1; \
+ 		name = #_param "_length"; \
+-		snprintf(passwd_len, 8, "%d", (int)strlen(value)); \
++		snprintf(passwd_len, 8, "%.7" PRIi32, (int)strlen(value) & 0xffff); \
+ 		value = passwd_len; \
+ 		goto setup_passwd_len; \
+ 	}
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
index e6a87a3..48b0783 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
@@ -14,6 +14,7 @@
 SRCREV ?= "bd79e4ed1004a6035d2538a308c5930890421a22"
 
 SRC_URI = "git://github.com/open-iscsi/open-iscsi \
+           file://0001-Fix-i586-build-issues-with-string-length-overflow.patch \
            file://initd.debian \
            file://99_iscsi-initiator-utils \
            file://iscsi-initiator \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
index c4b3309..ca9130d 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
@@ -60,10 +60,11 @@
 INSANE_SKIP_${PN}-libs = "dev-so"
 RDEPENDS_${PN} += "${PN}-libs"
 
-PACKAGECONFIG ??= "libgcrypt non32bit"
+PACKAGECONFIG ??= "libgcrypt non32bit snmp-bc"
 PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
 PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
 PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
+PACKAGECONFIG[snmp-bc] = "--enable-snmp_bc,--disable-snmp_bc"
 
 export DISTRO
 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
index db6796d..93c7577 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
@@ -1,4 +1,4 @@
-From ae7178a78aba2e5766b70191617113487fd7ad0b Mon Sep 17 00:00:00 2001
+From 88661a60629894353512c53ed32f2b901f64149c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 16 Apr 2018 18:29:17 -0700
 Subject: [PATCH] Fix string overflow in snprintf
@@ -53,7 +53,7 @@
    TRACE_ENTER();
  
 diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc b/src/smf/smfd/SmfUpgradeCampaign.cc
-index 45cdce8..6761bcf 100644
+index c30ea14..098f17a 100644
 --- a/src/smf/smfd/SmfUpgradeCampaign.cc
 +++ b/src/smf/smfd/SmfUpgradeCampaign.cc
 @@ -447,7 +447,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) {
@@ -66,11 +66,11 @@
    /* Read the SmfCampRestartInfo object smfCampRestartCnt attr */
    std::string obj = "smfRestartInfo=info," +
 @@ -473,7 +473,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) {
-     attrsmfCampRestartCnt.setName("smfCampRestartCnt");
-     attrsmfCampRestartCnt.setType("SA_IMM_ATTR_SAUINT32T");
+     attrsmfCampRestartCnt.SetAttributeName("smfCampRestartCnt");
+     attrsmfCampRestartCnt.SetAttributeType("SA_IMM_ATTR_SAUINT32T");
      char buf[5];
 -    snprintf(buf, 4, "%d", curCnt);
 +    snprintf(buf, 4, "%hd", curCnt);
-     attrsmfCampRestartCnt.addValue(buf);
-     imoCampRestartInfo.addValue(attrsmfCampRestartCnt);
+     attrsmfCampRestartCnt.AddAttributeValue(buf);
+     imoCampRestartInfo.AddValue(attrsmfCampRestartCnt);
  
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.09.bb
similarity index 90%
rename from meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb
rename to meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.09.bb
index c534c62..f1aedc4 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.04.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.18.09.bb
@@ -29,8 +29,8 @@
            file://0001-Fix-string-overflow-in-snprintf.patch \
            file://0008-check-for-size-before-using-strncpy.patch \
            "
-SRC_URI[md5sum] = "21836e43b13ad33bed9bd0ed391e5a6e"
-SRC_URI[sha256sum] = "e55dc2645487fb22938e8386b99eef6eb7aff43a246ce3e92488daf6ee46247a"
+SRC_URI[md5sum] = "45044fde0b35eac057a5fa05c27b8040"
+SRC_URI[sha256sum] = "230a0ea628ba278170a913746c39b2c8cd529d7dc25326b2e17b5c095cf94025"
 
 inherit autotools useradd systemd pkgconfig
 
@@ -48,7 +48,8 @@
 PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
 
 PKGLIBDIR="${libdir}"
-
+CPPFLAGS += "-Wno-error=stringop-overflow= -Wno-error=stringop-truncation"
+CXXFLAGS += "-Wno-error=stringop-overflow= -Wno-error=stringop-truncation -Wno-error=format-truncation="
 LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
 
 do_install_append() {
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/linux_5.x.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/linux_5.x.patch
new file mode 100644
index 0000000..fbb811c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/linux_5.x.patch
@@ -0,0 +1,27 @@
+Recognise kernel 5.x versioning scheme
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/makedefs
++++ b/makedefs
+@@ -543,7 +543,7 @@ EOF
+ 		: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
+ 		: ${PLUGIN_LD="${CC-gcc} -shared"}
+ 		;;
+-  Linux.[34].*)	SYSTYPE=LINUX$RELEASE_MAJOR
++  Linux.[345].*)	SYSTYPE=LINUX$RELEASE_MAJOR
+ 		case "$CCARGS" in
+ 		 *-DNO_DB*) ;;
+ 		 *-DHAS_DB*) ;;
+--- a/src/util/sys_defs.h
++++ b/src/util/sys_defs.h
+@@ -749,7 +749,7 @@ extern int initgroups(const char *, int)
+  /*
+   * LINUX.
+   */
+-#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4)
++#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5)
+ #define SUPPORTED
+ #define UINT32_TYPE	unsigned int
+ #define UINT16_TYPE	unsigned short
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.1.bb
similarity index 66%
rename from meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb
rename to meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.1.bb
index 6718b7e..73380d8 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.3.1.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.4.1.bb
@@ -4,9 +4,9 @@
             file://postfix-install.patch \
             file://icu-config.patch \
             file://0001-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
+            file://linux_5.x.patch \
            "
-
-SRC_URI[md5sum] = "4381c6492f415e4a69cf5099d4acea76"
-SRC_URI[sha256sum] = "54f514dae42b5275cb4bc9c69283f16c06200b71813d0bb696568c4ba7ae7e3b"
+SRC_URI[md5sum] = "d292bb49a1c79ff6d2eb9c5e88c51425"
+SRC_URI[sha256sum] = "8c9763f7a8ec70d499257b7f25bb50e1f3da8a4c43e59826ba8a26c4a778d0ce"
 
 UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.3(\.\d+)+).tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb
deleted file mode 100644
index 4baea01..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.17.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-
-require radvd.inc
-
-SRC_URI[md5sum] = "64ee3fdb5544bcddef1c6cd80d77fa0a"
-SRC_URI[sha256sum] = "53757e7f2164899e1145482f1ae91829600a6e2f6fec29cfb3b350a3bb45bd5d"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.18.bb b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.18.bb
new file mode 100644
index 0000000..6097b20
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.18.bb
@@ -0,0 +1,5 @@
+
+require radvd.inc
+
+SRC_URI[md5sum] = "26ead3a0d5cfbe4c81c3089eaf7b3250"
+SRC_URI[sha256sum] = "4f573e36b96ba92d03b5abbbd5f059b9c8994967812c77852f44049ac5a448fd"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.28.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb
rename to meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.28.bb
index 1557c4b..e33c1b7 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.27.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.28.bb
@@ -29,11 +29,11 @@
 
 SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
 
-SRC_URI[md5sum] = "c17a3ed3a40cd59c23f48b8539dafcd8"
-SRC_URI[sha256sum] = "467da134eaf0f7962ba5881793d106772fb05fefa4aea7d9569eec0412c52433"
+SRC_URI[md5sum] = "4ae3f6277b3aa6386cb5ad2d954179c2"
+SRC_URI[sha256sum] = "11971bfe3c13f438e42569ea551206caf68ecaa968305c30f7b422b556ebc7ac"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \
-                    file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \
+                    file://errors/COPYRIGHT;md5=1c0781e2ecd3051c765d525572defbc7 \
                    "
 DEPENDS = "libtool krb5 openldap db cyrus-sasl openssl expat libxml2"
 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-syscalls-in-the-seccomp-sandbox.patch b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-syscalls-in-the-seccomp-sandbox.patch
new file mode 100644
index 0000000..7573c96
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-syscalls-in-the-seccomp-sandbox.patch
@@ -0,0 +1,46 @@
+From dd353303f62d1dfe32cb000e482616b021708fbe Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 29 Nov 2018 00:47:34 -0800
+Subject: [PATCH] vsftpd: allow syscalls in the seccomp sandbox
+
+* Allow sysinfo() and getdents64 in the seccomp
+  sandbox otherwise comes below OOPS: priv_sock_get_cmd
+  as the syscall sysinfo() and getdents64 not allowed
+
+root@qemux86-64:~# tnftp 192.168.1.1
+Connected to 192.168.1.1.
+220 (vsFTPd 3.0.3)
+Name (192.168.1.1:root): anonymous
+331 Please specify the password.
+Password:
+230 Login successful.
+Remote system type is UNIX.
+Using binary mode to transfer files.
+ftp> prompt
+Interactive mode off.
+ftp> mget small*
+OOPS: priv_sock_get_cmd
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ seccompsandbox.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/seccompsandbox.c b/seccompsandbox.c
+index 2c350a9..377c50e 100644
+--- a/seccompsandbox.c
++++ b/seccompsandbox.c
+@@ -409,6 +409,8 @@ seccomp_sandbox_setup_postlogin(const struct vsf_session* p_sess)
+   allow_nr(__NR_getcwd);
+   allow_nr(__NR_chdir);
+   allow_nr(__NR_getdents);
++  allow_nr(__NR_getdents64);
++  allow_nr(__NR_sysinfo);
+   /* Misc */
+   allow_nr(__NR_umask);
+ 
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch
deleted file mode 100644
index c6c0f80..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9c4826c19f04da533886209361a2caddf582d65c Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Tue, 6 Sep 2016 17:17:44 +0800
-Subject: [PATCH] vsftpd: allow sysinfo() in the seccomp sandbox
-
-Upstream-Status: Pending
-
-* Allow sysinfo() in the seccomp sandbox otherwise
-  comes below OOPS: priv_sock_get_cmd as the syscall
-  sysinfo() not allowed
-
-tnftp 192.168.1.1
-Connected to 192.168.1.1.
-220 (vsFTPd 3.0.3)
-Name (192.168.1.1:root): anonymous
-331 Please specify the password.
-Password:
-230 Login successful.
-Remote system type is UNIX.
-Using binary mode to transfer files.
-ftp> prompt
-Interactive mode off.
-ftp> mget small*
-OOPS: priv_sock_get_cmd
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
-
----
- seccompsandbox.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/seccompsandbox.c b/seccompsandbox.c
-index 2c350a9..67d9ca5 100644
---- a/seccompsandbox.c
-+++ b/seccompsandbox.c
-@@ -409,6 +409,7 @@ seccomp_sandbox_setup_postlogin(const struct vsf_session* p_sess)
-   allow_nr(__NR_getcwd);
-   allow_nr(__NR_chdir);
-   allow_nr(__NR_getdents);
-+  allow_nr(__NR_sysinfo);
-   /* Misc */
-   allow_nr(__NR_umask);
- 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
index 2e3e0e8..df0d7f4 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
@@ -18,7 +18,7 @@
            file://volatiles.99_vsftpd \
            file://vsftpd.service \
            file://vsftpd-2.1.0-filter.patch \
-           file://0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch \
+           file://0001-vsftpd-allow-syscalls-in-the-seccomp-sandbox.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \
            file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \
diff --git a/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb b/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb
index 8c6979c..728ef87 100644
--- a/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb
@@ -30,5 +30,5 @@
 }
 
 do_install_append() {
-    sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
+    sed -i -e 's|${DEBUG_PREFIX_MAP}||g; s|--sysroot=${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
 }
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20190123.bb
similarity index 80%
rename from meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb
rename to meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20190123.bb
index 2c69c58..badc97a 100644
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20190123.bb
@@ -25,7 +25,7 @@
 PKG_${PN} = "kernel-module-${MODULE_NAME}"
 
 module_do_install() {
-    install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}
+    install -d ${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}
     install -m 0644 ${MODULE_NAME}.ko \
-    ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko
+    ${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko
 }
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20171221.bb b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20190123.bb
similarity index 100%
rename from meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20171221.bb
rename to meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20190123.bb
diff --git a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc
index 6bd581a..8314e79 100644
--- a/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc
+++ b/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${PV}.tar.xz"
-SRC_URI[md5sum] = "39bb99fe11356423fb1ab45ae2d938bb"
-SRC_URI[sha256sum] = "2b97697e9b271ba8836a04120a287b824648124f21d5309170ec51c1f86ac5ed"
+SRC_URI[md5sum] = "8a0a232f65d5d86dd408efd9ac30bcf9"
+SRC_URI[sha256sum] = "edd13c7631af169e3838621b1a1bff3ef73cf7bc778eec2bd55f7c1089ffdf9b"
 
 S = "${WORKDIR}/WireGuard-${PV}/src/"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
index 03dd963..d034cd8 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
@@ -39,6 +39,8 @@
 PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
 PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam"
 
+COMPATIBLE_HOST_libc-musl = 'null'
+
 do_configure () {
     ./configure --prefix=${prefix} --exec-prefix=${exec_prefix}
     echo "INSTALLROOT=${D}" > MCONFIG
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-fix-compile-error-disable-des.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-fix-compile-error-disable-des.patch
new file mode 100644
index 0000000..7e686ce
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-fix-compile-error-disable-des.patch
@@ -0,0 +1,62 @@
+From e38c508ef401593b1d4fe42b62e42a49cfec82af Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 26 Feb 2019 14:26:07 +0800
+Subject: [PATCH] net-snmp: fix compile error with --disable-des
+
+| scapi.c: In function 'sc_encrypt':
+| scapi.c:1256:5: error: 'pad_size' undeclared (first use in this function); did you mean 'dysize'?
+|      pad_size = pai->pad_size;
+|      ^~~~~~~~
+|      dysize
+
+pad_size is defined only without --disable-des
+[snip]
+#ifndef NETSNMP_DISABLE_DES
+    int             pad, plast, pad_size = 0; 
+
+but used when disable-des,
+[snip]
+        QUITFUN(SNMPERR_GENERR, sc_encrypt_quit);
+    }    
+    pad_size = pai->pad_size;
+
+    memset(my_iv, 0, sizeof(my_iv));
+
+#ifndef NETSNMP_DISABLE_DES
+    if (USM_CREATE_USER_PRIV_DES == (pai->type & USM_PRIV_MASK_ALG)) {
+
+        /*
+
+fix by move it into #ifndef NETSNMP_DISABLE_DES
+
+Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/bugs/2927/]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ snmplib/scapi.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/snmplib/scapi.c b/snmplib/scapi.c
+index 43caddf..c09deb0 100644
+--- a/snmplib/scapi.c
++++ b/snmplib/scapi.c
+@@ -1253,7 +1253,6 @@ sc_encrypt(const oid * privtype, size_t privtypelen,
+ 
+         QUITFUN(SNMPERR_GENERR, sc_encrypt_quit);
+     }
+-    pad_size = pai->pad_size;
+ 
+     memset(my_iv, 0, sizeof(my_iv));
+ 
+@@ -1263,6 +1262,8 @@ sc_encrypt(const oid * privtype, size_t privtypelen,
+         /*
+          * now calculate the padding needed 
+          */
++
++       pad_size = pai->pad_size;
+         pad = pad_size - (ptlen % pad_size);
+         plast = (int) ptlen - (pad_size - pad);
+         if (pad == pad_size)
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch
deleted file mode 100644
index 2d54096..0000000
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-remove-configure-options-from-versioninfo.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f592398b1c659f84168f5c84f63af3b71454b8f5 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 28 Sep 2018 22:59:23 +0800
-Subject: [PATCH] remove configure options from versioninfo
-
-Configure options contains host build paths which breaks
-binary reproducibility.
-
-It is no harm to remove it from version info.
-
-Upstream-Status: Inappropriate [cross compile specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- agent/mibgroup/ucd-snmp/versioninfo.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/agent/mibgroup/ucd-snmp/versioninfo.c b/agent/mibgroup/ucd-snmp/versioninfo.c
-index a5151c1..1160382 100644
---- a/agent/mibgroup/ucd-snmp/versioninfo.c
-+++ b/agent/mibgroup/ucd-snmp/versioninfo.c
-@@ -92,7 +92,7 @@ var_extensible_version(struct variable *vp,
-     static char     errmsg[300];
-     char           *cptr;
-     time_t          curtime;
--#ifdef NETSNMP_CONFIGURE_OPTIONS
-+#if 0
-     static char     config_opts[] = NETSNMP_CONFIGURE_OPTIONS;
- #endif
- 
-@@ -126,7 +126,7 @@ var_extensible_version(struct variable *vp,
-         *var_len = strlen(errmsg);
-         return ((u_char *) errmsg);
-     case VERCONFIG:
--#ifdef NETSNMP_CONFIGURE_OPTIONS
-+#if 0
-         *var_len = strlen(config_opts);
-         if (*var_len > 1024)
-             *var_len = 1024;    /* mib imposed restriction */
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-accept-configure-options-from-env.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-accept-configure-options-from-env.patch
new file mode 100644
index 0000000..b0dbf5a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-accept-configure-options-from-env.patch
@@ -0,0 +1,15 @@
+Reproducible build: To avoid build host paths being written into binaries,
+accept NETSNMP_CONFIGURE_OPTIONS from the environment.
+NETSNMP_CONFIGURE_OPTIONS can be set either null or to a fixed value.
+
+--- net-snmp-5.8.original/configure.ac	2018-11-20 17:41:39.926529072 +1300
++++ net-snmp-5.8/configure.ac	2018-11-20 17:54:44.488180224 +1300
+@@ -28,7 +28,7 @@
+ #
+ # save the configure arguments
+ #
+-AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"$ac_configure_args",
++AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"${NETSNMP_CONFIGURE_OPTIONS-$ac_configure_args}",
+   [configure options specified])
+ CONFIGURE_OPTIONS="\"$ac_configure_args\""
+ AC_SUBST(CONFIGURE_OPTIONS)
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
new file mode 100644
index 0000000..4316c7a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
@@ -0,0 +1,19 @@
+Reproducible build: Don't check for /etc/printcap on the build machine when
+cross-compiling. Use AC_CHECK_FILE to set the cached variable
+ac_cv_file__etc_printcap instead. When cross-compiling, this variable should be
+set in the environment to "yes" or "no" as appropriate for the target platform.
+
+--- net-snmp-5.8.original/configure.d/config_os_misc4	2018-11-20 17:05:03.986274522 +1300
++++ net-snmp-5.8/configure.d/config_os_misc4	2018-11-20 17:08:32.250700448 +1300
+@@ -116,9 +116,9 @@
+ 	[Path to the lpstat command])
+     AC_DEFINE(HAVE_LPSTAT, 1, [Set if the lpstat command is available])
+ fi
+-if test -r /etc/printcap; then
++AC_CHECK_FILE([/etc/printcap],
+     AC_DEFINE(HAVE_PRINTCAP, 1, [Set if /etc/printcap exists])
+-fi
++)
+ 
+ 
+ #       Check ps args
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
index 757c1db..673142b 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.8.bb
@@ -1,9 +1,9 @@
 SUMMARY = "Various tools relating to the Simple Network Management Protocol"
 HOMEPAGE = "http://www.net-snmp.org/"
 SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD & MIT"
 
-LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d100a395a38584f2ec18a8275261687"
 
 DEPENDS = "openssl libnl pciutils"
 
@@ -24,7 +24,9 @@
            file://0004-configure-fix-incorrect-variable.patch \
            file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \
            file://net-snmp-fix-for-disable-des.patch \
-           file://0001-remove-configure-options-from-versioninfo.patch \
+           file://reproducibility-have-printcap.patch \
+           file://reproducibility-accept-configure-options-from-env.patch \
+           file://0001-net-snmp-fix-compile-error-disable-des.patch \
            "
 SRC_URI[md5sum] = "6aae5948df7efde626613d6a4b3cd9d4"
 SRC_URI[sha256sum] = "c6291385b8ed84f05890fe4197005daf7e7ee7b082c2e390fa114a9477a56042"
@@ -41,15 +43,15 @@
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} des"
 PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils"
 PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
 
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
 
 PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\
                        perl, perl perl-lib"
+PACKAGECONFIG[des] = "--enable-des,--disable-des"
 
 EXTRA_OECONF = "--enable-shared \
                 --disable-manuals \
@@ -68,12 +70,17 @@
     ac_cv_header_valgrind_memcheck_h=no \
     ac_cv_ETC_MNTTAB=/etc/mtab \
     lt_cv_shlibpath_overrides_runpath=yes \
+    ac_cv_path_UNAMEPROG=${base_bindir}/uname \
+    ac_cv_file__etc_printcap=no \
+    NETSNMP_CONFIGURE_OPTIONS= \
 "
 export PERLPROG="${bindir}/env perl"
 PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
 
 HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
 
+PTEST_BUILD_HOST_FILES += "net-snmp-config gen-variables"
+
 do_configure_prepend() {
     sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \
         "${S}"/configure \
@@ -114,11 +121,13 @@
     install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system
     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@\([^ ]*-fdebug-prefix-map=[^ ]*\)\1*@@g" \
-           -e "s@\([^ ]*--sysroot=[^ ]*\)\1*@@g" \
-           -e "s@\([^ ]*--with-libtool-sysroot=[^ ]*\)\1*@@g" \
-           -e "s@\([^ ]*--with-install-prefix=[^ ]*\)\1*@@g" \
+    sed -e 's@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g' \
+        -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+        -e 's@[^ ]*--sysroot=[^ "]*@@g' \
+        -e 's@[^ ]*--with-libtool-sysroot=[^ "]*@@g' \
+        -e 's@[^ ]*--with-install-prefix=[^ "]*@@g' \
+        -e 's@[^ ]*PKG_CONFIG_PATH=[^ "]*@@g' \
+        -e 's@[^ ]*PKG_CONFIG_LIBDIR=[^ "]*@@g' \
         -i ${D}${bindir}/net-snmp-config
 
     if [ "${HAS_PERL}" = "1" ]; then
@@ -169,12 +178,6 @@
     fi
 }
 
-PACKAGE_PREPROCESS_FUNCS += "net_snmp_package_preprocess"
-net_snmp_package_preprocess () {
-    sed -e 's@${RECIPE_SYSROOT}@@g' \
-       -i ${PKGD}${bindir}/net-snmp-config
-}
-
 PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \
              ${PN}-server-snmpd ${PN}-server-snmptrapd \
              ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \
diff --git a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb
similarity index 87%
rename from meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb
rename to meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb
index b31543d..d437529 100644
--- a/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.14.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/c-ares/c-ares_1.15.0.bb
@@ -5,13 +5,13 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
 
-PV = "1.14.0+gitr${SRCPV}"
+PV = "1.15.0+gitr${SRCPV}"
 
 SRC_URI = "\
     git://github.com/c-ares/c-ares.git \
     file://cmake-install-libcares.pc.patch \
 "
-SRCREV = "17dc1b3102e0dfc3e7e31369989013154ee17893"
+SRCREV = "e982924acee7f7313b4baa4ee5ec000c5e373c30"
 
 UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb b/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb
index 31875ea..4ecaabd 100644
--- a/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb
@@ -4,18 +4,13 @@
 
 LICENSE = "DMTF"
 
-SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-Doc.zip \
+SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-Doc.zip;subdir=${BP} \
            file://LICENSE \
           "
 SRC_URI[md5sum] = "3d01940bc1085c6c42184c25fb61f739"
 SRC_URI[sha256sum] = "3174cf0f8657b19d80dc59e184778d8e553da424728cb2966fe9d5428dd84267"
 LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4"
 
-do_unpack() {
-        unzip -q ${DL_DIR}/cim_schema_${PV}Final-Doc.zip -d ${S}
-        cp -f ${FILE_DIRNAME}/files/LICENSE ${WORKDIR}/
-}
-
 do_install() {
         install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV}-docs
         cp -R --no-dereference --preserve=mode,links -v ${S}/* ${D}${datadir}/doc/cim-schema-${PV}-docs
diff --git a/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb b/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb
index a14de46..67d1db2 100644
--- a/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb
@@ -4,18 +4,13 @@
 
 RCONFLICTS_${PN} = "cim-schema-exper"
 
-SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-MOFs.zip \
+SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-MOFs.zip;subdir=${BP} \
     file://LICENSE \
 "
 SRC_URI[md5sum] = "a9bdf17c7374e3b5b7adeaac4842c4ad"
 SRC_URI[sha256sum] = "dbfa3064ea427acd71a4bebbc172ca2dc44b0b09a6d83b0945b9ffa988a9058a"
 LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4"
 
-do_unpack() {
-    unzip -q ${DL_DIR}/cim_schema_${PV}Final-MOFs.zip -d ${S}
-    cp -f ${FILE_DIRNAME}/files/LICENSE ${WORKDIR}/
-}
-
 do_install() {
     install -d -m 0755 ${D}${datadir}/mof/cimv${PV}/
     install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV}
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
index 4f4bbf1..33678e2 100644
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
@@ -12,6 +12,7 @@
            file://dnsmasq.conf \
            file://dnsmasq-resolvconf.service \
            file://dnsmasq-noresolvconf.service \
+           file://dnsmasq-resolved.conf \
 "
 
 inherit pkgconfig update-rc.d systemd
@@ -58,6 +59,8 @@
     else
         install -m 0644 ${WORKDIR}/dnsmasq-noresolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service
     fi
+    install -d ${D}${sysconfdir}/systemd/resolved.conf.d/
+    install -m 0644 ${WORKDIR}/dnsmasq-resolved.conf ${D}${sysconfdir}/systemd/resolved.conf.d/
 
     install -m 0755 ${S}/contrib/lease-tools/dhcp_release ${D}${bindir}
 
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb
deleted file mode 100644
index a66b9a9..0000000
--- a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.79.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require dnsmasq.inc
-
-SRC_URI[dnsmasq-2.79.md5sum] = "5d7120a46d0c16a334f46757d7e2ba55"
-SRC_URI[dnsmasq-2.79.sha256sum] = "77512dd6f31ffd96718e8dcbbf54f02c083f051d4cca709bd32540aea269f789"
-SRC_URI += "\
-    file://lua.patch \
-"
-
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb
new file mode 100644
index 0000000..fdbdefb
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq_2.80.bb
@@ -0,0 +1,8 @@
+require dnsmasq.inc
+
+SRC_URI[dnsmasq-2.80.md5sum] = "1f071fd11454e1cffea73bdadcf70b21"
+SRC_URI[dnsmasq-2.80.sha256sum] = "9e4a58f816ce0033ce383c549b7d4058ad9b823968d352d2b76614f83ea39adc"
+SRC_URI += "\
+    file://lua.patch \
+"
+
diff --git a/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf
new file mode 100644
index 0000000..33f4649
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf
@@ -0,0 +1,3 @@
+# Avoid conflicts between dnsmasq and systemd-resolved about port 53
+[Resolve]
+DNSStubListener=no
diff --git a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
rename to meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.bb
index 882d5d5..39bfb91 100644
--- a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
+++ b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.36.bb
@@ -12,8 +12,8 @@
            file://0001-doveadm-Fix-parallel-build.patch \
            "
 
-SRC_URI[md5sum] = "d61d1e923a22f9062cc9f47696882666"
-SRC_URI[sha256sum] = "e9483d68a7698d701bc06124fcf6e1b1f16380c2986c7ec0cf4e1475b9d0c218"
+SRC_URI[md5sum] = "a8d6492584025b2413e82ea48de3cd5f"
+SRC_URI[sha256sum] = "e9aba89bb1ac1e9581b84e4a7a50f53142539614eaf7cc4c80007ebea4988be5"
 
 DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc"
 CFLAGS += "-I${STAGING_INCDIR}/tirpc"
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.16-1.bb
similarity index 75%
rename from meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
rename to meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.16-1.bb
index fa4d10b..8794c4f 100644
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd_9.0.16-1.bb
@@ -11,8 +11,9 @@
 SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/drbd-${PV}.tar.gz \
            file://check_existence_of_modules_before_installing.patch"
 
-SRC_URI[md5sum] = "c1dd58043f46e9926b579aa65d4ea980"
-SRC_URI[sha256sum] = "87f72d46db9bad926415b3ab9f5f1397de8c581d2e2ec1addbdd5ce2604e6123"
+SRC_URI[md5sum] = "6414a9eef2807c8210b6403e36ce3ea4"
+SRC_URI[sha256sum] = "6074b0d643f4bbae4641d3b4bc30f4840e74f2a212dd9c6555b8141e530e5789"
+
 inherit module
 
 EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}'"
@@ -20,5 +21,3 @@
 do_install () {
     oe_runmake install DESTDIR="${D}"
 }
-
-PNBLACKLIST[drbd] = "implicit declaration of function 'setup_timer'; 4.15 head file issue?" 
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-Makefile-fix-problem-that-waf-cannot-found.patch b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-Makefile-fix-problem-that-waf-cannot-found.patch
new file mode 100644
index 0000000..10f2ef8
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-Makefile-fix-problem-that-waf-cannot-found.patch
@@ -0,0 +1,35 @@
+From 7205761d654636a6c1fad03a3ca40d38e253e192 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 25 Jan 2019 16:01:07 +0800
+Subject: [PATCH] Makefile: fix problem that waf cannot found
+
+tdb is subfolder of samba, but it can also build independently.
+so both path need to be added into PATH
+
+Upsteam-Status: Inappropriate [oe specific]
+
+Fix reject by upstream since upsteam need to support both python2/3,
+so drop add append PATH. refer link:
+https://gitlab.com/samba-team/samba/merge_requests/209
+https://gitlab.com/samba-team/samba/merge_requests/211
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 3e70146..64bb393 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ # simple makefile wrapper to run waf
+ 
+-WAF_BINARY=$(PYTHON) ../../buildtools/bin/waf
++WAF_BINARY=PATH=buildtools/bin:../../buildtools/bin:$$PATH waf
+ WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY)
+ 
+ all:
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-waf-add-support-of-cross_compile.patch b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-waf-add-support-of-cross_compile.patch
new file mode 100644
index 0000000..e20c9a2
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/0001-waf-add-support-of-cross_compile.patch
@@ -0,0 +1,63 @@
+From 4b8463ff43f8983a706b181c5292491f9f954be1 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 25 Jan 2019 15:00:59 +0800
+Subject: [PATCH] waf: add support of cross_compile
+
+After upgrade libtdb from 1.3.16 to 1.3.17, waf build system
+which used by libtdb upgrade from 1.5.19 to 2.0.8
+
+on 1.5.19, for cross_compile, subprocess.Popen is set to be
+samba_cross.cross_Popen, which will not execute testprog on
+host, but only read result from cross-answers.txt which is
+passed by option --cross-answer
+
+part of old code:
+    args = Utils.to_list(kw.get('exec_args', []))
+    proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE)
+
+but on 2.0.8, exec_args is not used and cause do_configure
+failed with Exec format error
+
+fixed by append cross anser related args to cmd
+
+Upstream-Status: Submitted [https://gitlab.com/samba-team/samba/merge_requests/211]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ third_party/waf/waflib/Tools/c_config.py | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/third_party/waf/waflib/Tools/c_config.py b/third_party/waf/waflib/Tools/c_config.py
+index 7608215..767cf33 100644
+--- a/third_party/waf/waflib/Tools/c_config.py
++++ b/third_party/waf/waflib/Tools/c_config.py
+@@ -660,20 +660,21 @@ class test_exec(Task.Task):
+ 	"""
+ 	color = 'PINK'
+ 	def run(self):
++		args = self.generator.bld.kw.get('exec_args', [])
+ 		if getattr(self.generator, 'rpath', None):
+ 			if getattr(self.generator, 'define_ret', False):
+-				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()])
+-			else:
+-				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()])
++				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args)
++			else: 
++				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + args)
+ 		else:
+ 			env = self.env.env or {}
+ 			env.update(dict(os.environ))
+ 			for var in ('LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'PATH'):
+ 				env[var] = self.inputs[0].parent.abspath() + os.path.pathsep + env.get(var, '')
+ 			if getattr(self.generator, 'define_ret', False):
+-				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()], env=env)
++				self.generator.bld.retval = self.generator.bld.cmd_and_log([self.inputs[0].abspath()] + args, env=env)
+ 			else:
+-				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()], env=env)
++				self.generator.bld.retval = self.generator.bld.exec_command([self.inputs[0].abspath()] + args, env=env)
+ 
+ @feature('test_exec')
+ @after_method('apply_link')
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
index 365b92d..e6e1023 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
@@ -1,6 +1,6 @@
-From 6de1affddde4003a956523c330ecf24e22e094ac Mon Sep 17 00:00:00 2001
+From 13bbc851d9fd7396f087758e614abba60eeb2aad Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 19 Jul 2018 16:20:32 +0800
+Date: Wed, 23 Jan 2019 10:14:05 +0800
 Subject: [PATCH] tdb: Add configure options for packages
 
 Add configure options for the following packages:
@@ -21,16 +21,19 @@
 
 Update for libtdb_1.3.16
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Update for libtdb_1.3.17
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- lib/replace/wscript | 89 +++++++++++++++++++++++++++++++++++++++++------------
+ lib/replace/wscript | 95 ++++++++++++++++++++++++++++++++++++++++-------------
  wscript             |  6 ++++
- 2 files changed, 75 insertions(+), 20 deletions(-)
+ 2 files changed, 79 insertions(+), 22 deletions(-)
 
 diff --git a/lib/replace/wscript b/lib/replace/wscript
-index fd00a42..2df83cd 100644
+index 6cbae93..7aeaf46 100644
 --- a/lib/replace/wscript
 +++ b/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_options(opt):
+@@ -25,6 +25,41 @@ def options(opt):
      opt.PRIVATE_EXTENSION_DEFAULT('')
      opt.RECURSE('buildtools/wafsamba')
  
@@ -72,7 +75,7 @@
  @Utils.run_once
  def configure(conf):
      conf.RECURSE('buildtools/wafsamba')
-@@ -32,12 +67,25 @@ def configure(conf):
+@@ -34,12 +69,25 @@ def configure(conf):
      conf.DEFINE('HAVE_LIBREPLACE', 1)
      conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
  
@@ -103,21 +106,24 @@
      conf.CHECK_HEADERS('port.h')
      conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
      conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -108,7 +156,9 @@ def configure(conf):
+@@ -110,8 +158,10 @@ def configure(conf):
      conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
      conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
  
--    conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
+-    conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
+-    conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
 +    if Options.options.enable_valgrind:
-+        conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
++        conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
++        conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
 +
      conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
      conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
      conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -342,20 +392,19 @@ def configure(conf):
+@@ -379,21 +429,22 @@ def configure(conf):
+     conf.CHECK_FUNCS('prctl dirname basename')
  
      strlcpy_in_bsd = False
- 
+-
 -    # libbsd on some platforms provides strlcpy and strlcat
 -    if not conf.CHECK_FUNCS('strlcpy strlcat'):
 -        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
@@ -132,27 +138,30 @@
 -
 -    if not conf.CHECK_FUNCS('closefrom'):
 -        conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++    
 +    if Options.options.enable_libbsd:
 +        # libbsd on some platforms provides strlcpy and strlcat
 +        if not conf.CHECK_FUNCS('strlcpy strlcat'):
-+            conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-+                    checklibc=True)
++            if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++                                   checklibc=True):
++                strlcpy_in_bsd = True
 +        if not conf.CHECK_FUNCS('getpeereid'):
 +            conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
 +        if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
 +            conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++        if not conf.CHECK_FUNCS('setproctitle_init'):
++            conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
 +
 +        if not conf.CHECK_FUNCS('closefrom'):
 +            conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+    
  
      conf.CHECK_CODE('''
                  struct ucred cred;
 diff --git a/wscript b/wscript
-index 6505648..6608481 100644
+index bc5ee26..9ac10b6 100644
 --- a/wscript
 +++ b/wscript
-@@ -63,6 +63,12 @@ def set_options(opt):
+@@ -69,6 +69,12 @@ def options(opt):
                     action="store_true", dest='disable_tdb_mutex_locking',
                     default=False)
  
diff --git a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.17.bb
similarity index 77%
rename from meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb
rename to meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.17.bb
index 0579ed6..4c7755c 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.16.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.17.bb
@@ -9,15 +9,18 @@
 SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \
            file://do-not-check-xsltproc-manpages.patch \
            file://tdb-Add-configure-options-for-packages.patch \
+           file://0001-waf-add-support-of-cross_compile.patch \
+           file://0001-Makefile-fix-problem-that-waf-cannot-found.patch \
 "
 
-SRC_URI[md5sum] = "7d06d8709188e07df853d9e91db88927"
-SRC_URI[sha256sum] = "6a3fc2616567f23993984ada3cea97d953a27669ffd1bfbbe961f26e0cf96cc5"
+SRC_URI[md5sum] = "519d373ac72a66b0a2739dbb495de127"
+SRC_URI[sha256sum] = "1cb4399394c60a773430ca54848359adcf54fb6f136afdcfcbbe62b5f4245614"
 
 PACKAGECONFIG ??= "\
     ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
 "
+
 PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
 PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
 PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
@@ -29,6 +32,10 @@
 
 inherit waf-samba
 
+#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+#to cross Popen
+export WAF_NO_PREFORK="yes"
+
 EXTRA_OECONF += "--disable-rpath \
                  --bundled-libraries=NONE \
                  --builtin-libraries=replace \
diff --git a/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch b/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch
new file mode 100644
index 0000000..a7c7093
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch
@@ -0,0 +1,48 @@
+From 29b37e45577c0921846c1709a190f08a3b032666 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Mar 2019 09:08:38 -0800
+Subject: [PATCH] IFNAMSIZ is defined in net/if.h
+
+Fixes
+/mnt/a/yoe/build/tmp/work/qemuriscv64-yoe-linux-musl/linux-atm/2.5.2-r0/recipe-sysroot/usr/include/linux/if_arp.h:121:16: error: 'IFNAMSIZ' undeclared here (not in a function)
+|  char  arp_dev[IFNAMSIZ];
+|                ^~~~~~~~
+In file included from ../../../linux-atm-2.5.2/src/arpd/itf.c:17:
+/mnt/a/yoe/build/tmp/work/qemuriscv64-yoe-linux-musl/linux-atm/2.5.2-r0/recipe-sysroot/usr/include/linux/if_arp.h:121:16: error: 'IFNAMSIZ' undeclared here (not in a function)
+|  char  arp_dev[IFNAMSIZ];
+|                ^~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/arpd/arp.c | 1 +
+ src/arpd/itf.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/arpd/arp.c b/src/arpd/arp.c
+index 92d3787..ff1574c 100644
+--- a/src/arpd/arp.c
++++ b/src/arpd/arp.c
+@@ -17,6 +17,7 @@
+ #include <netinet/in.h> /* for ntohs, etc. */
+ #define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */
+ #include <linux/types.h>
++#include <net/if.h>
+ #include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <atm.h>
+diff --git a/src/arpd/itf.c b/src/arpd/itf.c
+index 92f0951..d285e3b 100644
+--- a/src/arpd/itf.c
++++ b/src/arpd/itf.c
+@@ -14,6 +14,7 @@
+ #include <sys/socket.h>
+ #define _LINUX_NETDEVICE_H /* glibc2 */
+ #include <linux/types.h>
++#include <net/if.h>
+ #include <linux/if_arp.h>
+ 
+ #include "atmd.h"
+-- 
+2.21.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb b/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
index 9fce4fb..51682b1 100644
--- a/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
@@ -14,6 +14,7 @@
            file://0001-ttcp-Add-printf-format-string.patch \
            file://0002-sigd-Replace-on_exit-API-with-atexit.patch \
            file://0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch \
+           file://0001-IFNAMSIZ-is-defined-in-net-if.h.patch \
 "
 
 SRC_URI[md5sum] = "d49499368c3cf15f73a05d9bce8824a8"
diff --git a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb
similarity index 64%
rename from meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb
rename to meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb
index defc05c..20ad43a 100644
--- a/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.190.bb
+++ b/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb
@@ -7,15 +7,15 @@
 DEPENDS += "glib-2.0 libbsd"
 do_patch[depends] = "quilt-native:do_populate_sysroot"
 
-SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/netcat-openbsd/1.190-2/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \
-           https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/netcat-openbsd/1.190-2/netcat-openbsd_${PV}-2.debian.tar.xz;name=netcat-patch;subdir=${BP} \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20181022T085404Z/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \
+           http://snapshot.debian.org/archive/debian/20181022T085404Z/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}-1.debian.tar.xz;name=netcat-patch;subdir=${BP} \
            file://0001-bundle-own-base64-encode-decode-functions.patch \
            "
 
-SRC_URI[netcat.md5sum] = "dd32fd1d7903b541ad8709794539b959"
-SRC_URI[netcat.sha256sum] = "68ccc448392c05ec51baed0167a72b8c650454f990b895d6e6877d416a38e536"
-SRC_URI[netcat-patch.md5sum] = "78058b7af0170654b877b02c37716cdf"
-SRC_URI[netcat-patch.sha256sum] = "88088af3f520c7825e59bc133d65e70fc4a30139d451c6faabbd9f240bc78374"
+SRC_URI[netcat.md5sum] = "219d5e49c45658e229a3bda63063a986"
+SRC_URI[netcat.sha256sum] = "0e283b2a214313c69447cd962c528ac19afb3ddfe606b25de6d179f187cde4c3"
+SRC_URI[netcat-patch.md5sum] = "7eba241989dbef6caa78ec4bc8e35151"
+SRC_URI[netcat-patch.sha256sum] = "c6736fcbab5254cbbc52278993a951da1126e42800a297c27db297e332e2017e"
 
 inherit pkgconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.37.0.bb
similarity index 66%
rename from meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb
rename to meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.37.0.bb
index 3ccd486..50196d6 100644
--- a/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nghttp2/nghttp2_1.37.0.bb
@@ -4,9 +4,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
 
-SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.bz2"
-SRC_URI[md5sum] = "926f07ad3b50f38f7d8935ced04716cf"
-SRC_URI[sha256sum] = "0df4229f4123b5aa96e834ebcfdffe954e93d986f0252fd10123d50c6f010983"
+SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.xz"
+SRC_URI[md5sum] = "dc7536d02aa7d4883c20eaf637747381"
+SRC_URI[sha256sum] = "aa090b164b17f4b91fe32310a1c0edf3e97e02cd9d1524eef42d60dd1e8d47b7"
 
 DEPENDS = "libxml2 openssl zlib jansson cunit c-ares"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/nis/nis.inc b/meta-openembedded/meta-networking/recipes-support/nis/nis.inc
index 200eaf7..a968af1 100644
--- a/meta-openembedded/meta-networking/recipes-support/nis/nis.inc
+++ b/meta-openembedded/meta-networking/recipes-support/nis/nis.inc
@@ -25,7 +25,7 @@
 # so force the package to be skipped here (this will cause a
 # 'nothing provides' error)
 python () {
-    os = d.getVar("TARGET_OS", True)
+    os = d.getVar("TARGET_OS")
     if os == "linux-uclibc":
         raise bb.parse.SkipRecipe("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this")
 }
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb
index d28ebd4..f0426ce 100644
--- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb
@@ -38,7 +38,7 @@
 SRC_URI[md5sum] = "1461ac4d78fc516646fd0a6e605a8b05"
 SRC_URI[sha256sum] = "f0f1a0ec732409930b7a31a6daa6cf39b585f52059b62a5f092b7ece21aa75a5"
 
-inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
+inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd cpan-base
 
 EXTRA_OECONF = "--disable-static \
                 --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
@@ -78,6 +78,7 @@
         echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
         echo "SAL: libdir = $libdir"
         sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
+        sed -i -e "/^PERL_CFLAGS/s:-I .* :-I ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE :g" $i
         sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
     done
 }
diff --git a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb
index c8bb17c..5a4e2d3 100644
--- a/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.7.1.bb
@@ -66,8 +66,8 @@
     dbglibdir = os.path.join(libdir, '.debug')
 
     def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename):
-        dvar = d.getVar('PKGD', True)
-        oldfiles = d.getVar('CONFFILES_' + pkg, True)
+        dvar = d.getVar('PKGD')
+        oldfiles = d.getVar('CONFFILES_' + pkg)
         newfile = '/' + os.path.relpath(f, dvar)
 
         if not oldfiles:
@@ -83,7 +83,7 @@
     split_staticdev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev')
 
     if split_packages:
-        pn = d.getVar('PN', True)
+        pn = d.getVar('PN')
         d.setVar('RRECOMMENDS_' + pn + '-plugins', ' '.join(split_packages))
         d.appendVar('RRECOMMENDS_' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
         d.appendVar('RRECOMMENDS_' + pn + '-dev', ' ' + ' '.join(split_dev_packages))
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/avoid-absolute-path-when-searching-for-libdlpi.patch b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/avoid-absolute-path-when-searching-for-libdlpi.patch
new file mode 100644
index 0000000..d82c160
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/avoid-absolute-path-when-searching-for-libdlpi.patch
@@ -0,0 +1,30 @@
+From a2bfd28034d9aa48d8ff109c1314e53bc9779752 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Wed, 24 Oct 2018 22:26:08 -0700
+Subject: [PATCH] avoid absolute path when searching for libdlpi
+
+Let the build environment control library search paths.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index c882909..52aefd6 100644
+--- a/configure.in
++++ b/configure.in
+@@ -542,7 +542,7 @@ don't.])
+ fi
+ 
+ # libdlpi is needed for Solaris 11 and later.
+-AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib)
++AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi")
+ 
+ dnl
+ dnl Check for "pcap_list_datalinks()", "pcap_set_datalink()",
+-- 
+1.9.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch
index 8cefadf..69d68ba 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch
+++ b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch
@@ -1,10 +1,8 @@
-From 741d77e42fc4af49804f7ee43b7237e01633cbcd Mon Sep 17 00:00:00 2001
+From dd023c133980fcc0cff5896e85377675e0571894 Mon Sep 17 00:00:00 2001
 From: Roy Li <rongqing.li@windriver.com>
 Date: Tue, 8 Jul 2014 13:20:47 +0800
 Subject: [PATCH] unnecessary to check libpcap
 
-Upstream-Status: Pending
-
 since the check of libpcap did not consider the cross-compile, lead to the
 below error:
 	This autoconf log indicates errors, it looked at host include and/or
@@ -13,22 +11,29 @@
 In fact, the libpcap has been added into the tcpdump's DEPENDS, not need to
 check if libpcap existed.
 
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Upstream-Status: Inappropriate [OE specific]
 
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
 ---
- configure.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ configure.in | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/configure.in b/configure.in
-index b2305a5..b3b5dbf 100644
+index b2305a5..c882909 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -418,7 +418,7 @@ dnl Some platforms may need -lnsl for getrpcbynumber.
+@@ -418,7 +418,9 @@ dnl Some platforms may need -lnsl for getrpcbynumber.
  AC_SEARCH_LIBS(getrpcbynumber, nsl,
      AC_DEFINE(HAVE_GETRPCBYNUMBER, 1, [define if you have getrpcbynumber()]))
  
 -AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
-+#AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
++# Simplified (more cross compile friendly) check for libpcap. All we really
++# need is to sanity check that libpcap is available and add -lpcap to LIBS.
++AC_CHECK_LIB(pcap, pcap_compile, LIBS="$LIBS -lpcap")
  
  #
  # Check for these after AC_LBL_LIBPCAP, so we link with the appropriate
+-- 
+1.9.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
index d38540e..038c161 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
@@ -1,13 +1,15 @@
 SUMMARY = "A sophisticated network protocol analyzer"
 HOMEPAGE = "http://www.tcpdump.org/"
+SECTION = "net"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867"
-SECTION = "net"
+
 DEPENDS = "libpcap"
 
 SRC_URI = " \
     http://www.tcpdump.org/release/${BP}.tar.gz \
     file://unnecessary-to-check-libpcap.patch \
+    file://avoid-absolute-path-when-searching-for-libdlpi.patch \
     file://add-ptest.patch \
     file://run-ptest \
 "
@@ -15,34 +17,25 @@
 SRC_URI[md5sum] = "9bbc1ee33dab61302411b02dd0515576"
 SRC_URI[sha256sum] = "798b3536a29832ce0cbb07fafb1ce5097c95e308a6f592d14052e1ef1505fe79"
 
-export LIBS=" -lpcap"
-
 inherit autotools-brokensep ptest
-CACHED_CONFIGUREVARS = "ac_cv_linux_vers=${ac_cv_linux_vers=2}"
 
-PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-crypto=yes, --without-openssl --without-crypto, openssl"
-PACKAGECONFIG[smi] = "--with-smi, --without-smi,libsmi"
-PACKAGECONFIG[libcap-ng] = "--with-cap-ng=yes,--with-cap-ng=no,libcap-ng"
+PACKAGECONFIG ?= "openssl"
 
-EXTRA_AUTORECONF += " -I m4"
+PACKAGECONFIG[libcap-ng] = "--with-cap-ng,--without-cap-ng,libcap-ng"
+PACKAGECONFIG[openssl] = "--with-crypto,--without-openssl --without-crypto,openssl"
+PACKAGECONFIG[smi] = "--with-smi,--without-smi,libsmi"
+
+EXTRA_AUTORECONF += "-I m4"
 
 do_configure_prepend() {
     mkdir -p ${S}/m4
     if [ -f aclocal.m4 ]; then
         mv aclocal.m4 ${S}/m4
     fi
-    # AC_CHECK_LIB(dlpi.. was looking to host /lib
-    sed -i 's:-L/lib::g' ./configure.in
-}
-do_configure_append() {
-    sed -i 's:-L/usr/lib::' ./Makefile
-    sed -i 's:-Wl,-rpath,${STAGING_LIBDIR}::' ./Makefile
-    sed -i 's:-I/usr/include::' ./Makefile
 }
 
 do_install_append() {
-    # tcpdump 4.0.0 installs a copy to /usr/sbin/tcpdump.4.0.0
+    # make install installs an unneeded extra copy of the tcpdump binary
     rm -f ${D}${sbindir}/tcpdump.${PV}
 }
 
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch
deleted file mode 100644
index e65ef9b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1a6a5d2bcb1adec9ba138c2ebee7bbc994620aff Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Jun 2018 23:23:44 -0700
-Subject: [PATCH] Add libm to link for fmod() API
-
-fixes
-ld: CMakeFiles/tshark.dir/ui/cli/tap-comparestat.c.o: undefined reference to symbol 'fmod@@GLIBC_2.2.5'
-| /mnt/a/oe/build/tmp/work/core2-64-bec-linux/wireshark/1_2.6.1-r0/recipe-sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7950e85..acee140 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -2494,6 +2494,7 @@ if(BUILD_tshark)
- 		${LIBEPAN_LIBS}
- 		${APPLE_CORE_FOUNDATION_LIBRARY}
- 		${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
-+		m
- 	)
- 	set(tshark_FILES
- 		capture_opts.c
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.6.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.0.bb
similarity index 71%
rename from meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.6.bb
rename to meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.0.bb
index 4699f67..dc55e3d 100644
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.6.6.bb
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_3.0.0.bb
@@ -8,26 +8,20 @@
 
 DEPENDS_append_class-target = " wireshark-native chrpath-replacement-native "
 
-SRC_URI = "https://1.as.dl.wireshark.org/src/all-versions/${BP}.tar.xz \
-           file://0001-Add-libm-to-link-for-fmod-API.patch \
-          "
+SRC_URI = "https://1.eu.dl.wireshark.org/src/wireshark-${PV}.tar.xz"
 
 UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
 
-SRC_URI[md5sum] = "b30ba5b9b48ed2ff91c0ce357d33b46b"
-SRC_URI[sha256sum] = "487933ea075bdbb25d8df06017d9c4f49fc20eb7f6ec80af086718ed5550e863"
+SRC_URI[md5sum] = "258d62ac7434d126dc497303c8f7961b"
+SRC_URI[sha256sum] = "bc4f30f5b2e94f3a696fef9de44673cdf402db90aac5299966da647f708f009e"
 
 PE = "1"
 
-inherit cmake pkgconfig pythonnative perlnative upstream-version-is-even
+inherit cmake pkgconfig python3native perlnative upstream-version-is-even
 
 ARM_INSTRUCTION_SET = "arm"
 
-# Options: gtk+, gtk+3 and qt5
-GTK = "gtk+3"
-
 PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
-PACKAGECONFIG_append_class-target = " ${@bb.utils.contains("DISTRO_FEATURES", "x11", " ${GTK}", "", d)}"
 
 PACKAGECONFIG_class-native = "libpcap gnutls ssl libssh"
 
@@ -36,8 +30,6 @@
 PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
 PACKAGECONFIG[libnl] = ",,libnl"
 PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
-PACKAGECONFIG[gtk+] = "-DENABLE_GTK=ON -DBUILD_wireshark_gtk=ON, -DENABLE_GTK=OFF, gtk+"
-PACKAGECONFIG[gtk+3] = "-DENABLE_GTK3=ON -DBUILD_wireshark_gtk=ON, -DENABLE_GTK3=OFF, gtk+3"
 PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
 PACKAGECONFIG[ssl] = ",,openssl"
 PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
@@ -79,16 +71,11 @@
 }
 
 PACKAGE_BEFORE_PN += "tshark"
-PACKAGE_BEFORE_PN += "${PN}-gtk"
 
 FILES_tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
-FILES_${PN}-gtk = "${bindir}/wireshark-gtk ${datadir}/icons ${datadir}/appdata \
-                   ${datadir}/applications ${datadir}/wireshark ${datadir}/mime \
-                   ${mandir}/man1/wireshark.* "
 
 FILES_${PN} += "${datadir}*"
 
 RDEPENDS_tshark = "wireshark"
-RDEPENDS_${PN}-gtk = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "${GTK}", "", d)} wireshark"
 
 BBCLASSEXTEND = "native"