diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.4.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.3.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.4.bb
index 9143a67..29bef23 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.3.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.1.4.bb
@@ -11,7 +11,7 @@
     file://0001-Search-for-cython3.patch \
     file://0002-fix-fail-to-enable-bluetooth.patch \
 "
-SRC_URI[sha256sum] = "3bd02e0cc9e2c1424df1fc2015da710a280ef4c657515727e47eafabf8c2cfde"
+SRC_URI[sha256sum] = "1d9c3d39a564d88851aa8de509f16bfa586b0b50f4307dc6c6347ba4833664da"
 
 EXTRA_OECONF = " \
     --disable-appindicator \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/fix-incorrect-EOF-check-in-ssl_context_info.patch b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/fix-incorrect-EOF-check-in-ssl_context_info.patch
deleted file mode 100644
index 836fce9..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/fix-incorrect-EOF-check-in-ssl_context_info.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From d696e7d91e42a190d06760279d2e396392143454 Mon Sep 17 00:00:00 2001
-From: Nayna Jain <nayna@linux.ibm.com>
-Date: Thu, 13 Aug 2020 19:17:53 +0000
-Subject: [PATCH] programs/ssl: Fix incorrect EOF check in ssl_context_info.c
-
-In `read_next_b64_code()`, the result of fgetc() is stored into a char,
-but later compared against EOF, which is generally -1.  On platforms
-where char is unsigned, this generates a compiler warning/error that the
-comparison will never be true (causing a build failure).  The value will
-never match, with the function ultimately bailing with a "Too many bad
-symbols are detected" error.
-
-On platforms with signed char, EOF is detected, but a file containing a
-0xFF character will causes a premature end of file exit of the loop.
-
-Fix this by changing the result to an int.
-
-Fixes #3794.
-
-Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
-Signed-off-by: David Brown <david.brown@linaro.org>
----
- ChangeLog.d/bugfix_3794.txt     | 4 ++++
- programs/ssl/ssl_context_info.c | 4 ++--
- 2 files changed, 6 insertions(+), 2 deletions(-)
- create mode 100644 ChangeLog.d/bugfix_3794.txt
-
-diff --git a/ChangeLog.d/bugfix_3794.txt b/ChangeLog.d/bugfix_3794.txt
-new file mode 100644
-index 0000000000..a483ea76ae
---- /dev/null
-+++ b/ChangeLog.d/bugfix_3794.txt
-@@ -0,0 +1,4 @@
-+Bugfix
-+  * Fix handling of EOF against 0xff bytes and on platforms with
-+    unsigned chars.  Fixes a build failure on platforms where char is
-+    unsigned.  Fixes #3794.
-diff --git a/programs/ssl/ssl_context_info.c b/programs/ssl/ssl_context_info.c
-index df8819a804..d109c1e6f7 100644
---- a/programs/ssl/ssl_context_info.c
-+++ b/programs/ssl/ssl_context_info.c
-@@ -377,13 +377,13 @@ size_t read_next_b64_code( uint8_t **b64, size_t *max_len )
-     int valid_balance = 0;  /* balance between valid and invalid characters */
-     size_t len = 0;
-     char pad = 0;
--    char c = 0;
-+    int c = 0;
- 
-     while( EOF != c )
-     {
-         char c_valid = 0;
- 
--        c = (char) fgetc( b64_file );
-+        c = fgetc( b64_file );
- 
-         if( pad > 0 )
-         {
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.24.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.25.0.bb
similarity index 92%
rename from meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.24.0.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.25.0.bb
index e3a0169..27c1b20 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.24.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.25.0.bb
@@ -23,10 +23,8 @@
 SECTION = "libs"
 
 S = "${WORKDIR}/git"
-SRCREV = "523f0554b6cdc7ace5d360885c3f5bbcc73ec0e8"
-SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=development \
-           file://fix-incorrect-EOF-check-in-ssl_context_info.patch \
-"
+SRCREV = "1c54b5410fd48d6bcada97e30cac417c5c7eea67"
+SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=development"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-dbus-Remove-unused-variabes.patch b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-dbus-Remove-unused-variabes.patch
index af28ba7..407e24c 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-dbus-Remove-unused-variabes.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-dbus-Remove-unused-variabes.patch
@@ -1,6 +1,3 @@
-From e5bd4c3853fb394edc8cbea17fad82ce23bd0fae Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 27 Nov 2020 12:21:32 -0800
 Subject: [PATCH 1/2] dbus: Remove unused variabes
 
 This issue is seen when using clang to compile it
@@ -19,11 +16,13 @@
  src/parse.c    | 1 -
  3 files changed, 5 deletions(-)
 
+diff --git a/src/dbus.c b/src/dbus.c
+index 9606fea..8e1ed9d 100644
 --- a/src/dbus.c
 +++ b/src/dbus.c
-@@ -45,9 +45,6 @@ static int method_apply(sd_bus_message *
- 
- static int method_info(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
+@@ -242,9 +242,6 @@ static int
+ method_info(sd_bus_message *m, void *userdata, sd_bus_error *ret_error)
+ {
      sd_bus_message *reply = NULL;
 -    g_autoptr(GError) err = NULL;
 -    g_autofree gchar *stdout = NULL;
@@ -31,9 +30,11 @@
      gint exit_status = 0;
  
      exit_status = sd_bus_message_new_method_return(m, &reply);
+diff --git a/src/networkd.c b/src/networkd.c
+index 7c86cd6..7200740 100644
 --- a/src/networkd.c
 +++ b/src/networkd.c
-@@ -896,7 +896,6 @@ append_wpa_auth_conf(GString* s, const N
+@@ -897,7 +897,6 @@ append_wpa_auth_conf(GString* s, const NetplanAuthenticationSettings* auth, cons
  static void
  write_wpa_unit(const NetplanNetDefinition* def, const char* rootdir)
  {
@@ -41,9 +42,11 @@
      g_autofree gchar *stdouth = NULL;
  
      stdouth = systemd_escape(def->id);
+diff --git a/src/parse.c b/src/parse.c
+index 033c657..faca27f 100644
 --- a/src/parse.c
 +++ b/src/parse.c
-@@ -1898,7 +1898,6 @@ handle_wireguard_peers(yaml_document_t*
+@@ -1899,7 +1899,6 @@ handle_wireguard_peers(yaml_document_t* doc, yaml_node_t* node, const void* _, G
      }
  
      for (yaml_node_item_t *i = node->data.sequence.items.start; i < node->data.sequence.items.top; i++) {
@@ -51,3 +54,6 @@
          yaml_node_t *entry = yaml_document_get_node(doc, *i);
          assert_type(entry, YAML_MAPPING_NODE);
  
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
new file mode 100644
index 0000000..dab8693
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
@@ -0,0 +1,30 @@
+From ceb4111af317ecc54d97bb21878dcccbfdb2983e Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 11:41:43 +0900
+Subject: [PATCH] don't fail if GLOB_BRACE is not defined
+
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+---
+ src/util.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/util.c b/src/util.c
+index 7e59985..eb8e573 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -23,6 +23,12 @@
+ 
+ #include "util.h"
+ 
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ GHashTable* wifi_frequency_24;
+ GHashTable* wifi_frequency_5;
+ 
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0002-Makefile-Exclude-.h-files-from-target-rule.patch b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0002-Makefile-Exclude-.h-files-from-target-rule.patch
index cd75d1c..68aabd6 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0002-Makefile-Exclude-.h-files-from-target-rule.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan/0002-Makefile-Exclude-.h-files-from-target-rule.patch
@@ -1,6 +1,3 @@
-From 5abb6b8343b5d2633844144979b40f398450b544 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 27 Nov 2020 12:22:32 -0800
 Subject: [PATCH 2/2] Makefile: Exclude .h files from target rule
 
 This ensures that src/_features.h is not added to compiler cmdline which
@@ -17,14 +14,19 @@
  Makefile | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
+diff --git a/Makefile b/Makefile
+index 4fa6bd8..567d326 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -47,7 +47,7 @@ generate: libnetplan.so.$(NETPLAN_SOVER)
+@@ -46,7 +46,7 @@ generate: libnetplan.so.$(NETPLAN_SOVER) nm.o networkd.o openvswitch.o generate.
  	$(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $^ -L. -lnetplan `pkg-config --cflags --libs glib-2.0 gio-2.0 yaml-0.1 uuid`
  
- netplan-dbus: src/dbus.c src/_features.h
--	$(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $^ `pkg-config --cflags --libs libsystemd glib-2.0`
-+	$(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(patsubst %.h,,$^) `pkg-config --cflags --libs libsystemd glib-2.0`
+ netplan-dbus: src/dbus.c src/_features.h util.o
+-	$(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $^ `pkg-config --cflags --libs libsystemd glib-2.0 gio-2.0`
++	$(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(patsubst %.h,,$^) `pkg-config --cflags --libs libsystemd glib-2.0 gio-2.0`
  
  src/_features.h: src/[^_]*.[hc]
  	printf "#include <stddef.h>\nstatic const char *feature_flags[] __attribute__((__unused__)) = {\n" > $@
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.100.bb b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.101.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.100.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.101.bb
index 2f74a22..a3afcd2 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.100.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/netplan/netplan_0.101.bb
@@ -11,14 +11,15 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 S = "${WORKDIR}/git"
-SRCREV = "b7d32aebc880f3161b8f97ee56b729c0c54dd0e4"
-PV = "0.100+git${SRCPV}"
+SRCREV = "e445b87b9dff439ec564c245d030b03d61eb0f24"
+PV = "0.101+git${SRCPV}"
 
 SRC_URI = " \
         git://github.com/CanonicalLtd/netplan.git \
         file://0001-dbus-Remove-unused-variabes.patch \
         file://0002-Makefile-Exclude-.h-files-from-target-rule.patch \
 "
+SRC_URI_append_libc-musl = " file://0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch"
 
 DEPENDS = "glib-2.0 libyaml ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/fix_reallocarray_check.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/fix_reallocarray_check.patch
new file mode 100644
index 0000000..0a8de54
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager/fix_reallocarray_check.patch
@@ -0,0 +1,27 @@
+reallocarray() is coming from stdlib.h which maybe indirectly included
+by malloc.h but not on all libc implementations
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/meson.build
++++ b/meson.build
+@@ -114,7 +114,7 @@ config_h.set10('HAVE_GETRANDOM', use_sys
+ # FIXME secure_getenv check is not useful?
+ config_h.set('HAVE_SECURE_GETENV', cc.has_function('secure_getenv'))
+ config_h.set('HAVE___SECURE_GETENV', cc.has_function('__secure_getenv'))
+-config_h.set10('HAVE_DECL_REALLOCARRAY', cc.has_function('reallocarray', prefix: '#include <malloc.h>'))
++config_h.set10('HAVE_DECL_REALLOCARRAY', cc.has_function('reallocarray', prefix: '#include <stdlib.h>'))
+ config_h.set10('HAVE_DECL_EXPLICIT_BZERO', cc.has_function('explicit_bzero', prefix: '#include <string.h>'))
+ config_h.set10('HAVE_DECL_MEMFD_CREATE', cc.has_function('memfd_create', prefix: '#include <sys/mman.h>'))
+ 
+--- a/configure.ac
++++ b/configure.ac
+@@ -82,7 +82,7 @@ AC_CHECK_DECLS([
+ AC_CHECK_DECLS([
+ 	reallocarray],
+ 	[], [], [[
+-#include <malloc.h>
++#include <stdlib.h>
+ ]])
+ 
+ AC_CHECK_DECLS([
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb
index 2613076..aa8ab89 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.22.14.bb
@@ -27,6 +27,7 @@
     file://0001-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
     file://0002-Do-not-create-settings-settings-property-documentati.patch \
     file://0001-install-firewalld-to-var-libdir-rather-than-hardcod-.patch \
+    file://fix_reallocarray_check.patch \
 "
 SRC_URI_append_libc-musl = " \
     file://musl/0001-Fix-build-with-musl-systemd-specific.patch \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/CVE-2020-14318.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/CVE-2020-14318.patch
new file mode 100644
index 0000000..ff1225d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/CVE-2020-14318.patch
@@ -0,0 +1,142 @@
+From ccf53dfdcd39f3526dbc2f20e1245674155380ff Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Fri, 11 Dec 2020 11:32:44 +0900
+Subject: [PATCH] s4: torture: Add smb2.notify.handle-permissions test.
+
+s3: smbd: Ensure change notifies can't get set unless the
+ directory handle is open for SEC_DIR_LIST.
+
+CVE-2020-14318
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=14434
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ source3/smbd/notify.c         |  8 ++++
+ source4/torture/smb2/notify.c | 82 ++++++++++++++++++++++++++++++++++-
+ 2 files changed, 89 insertions(+), 1 deletion(-)
+
+diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c
+index 44c0b09..d23c03b 100644
+--- a/source3/smbd/notify.c
++++ b/source3/smbd/notify.c
+@@ -283,6 +283,14 @@ NTSTATUS change_notify_create(struct files_struct *fsp, uint32_t filter,
+ 	char fullpath[len+1];
+ 	NTSTATUS status = NT_STATUS_NOT_IMPLEMENTED;
+ 
++	/*
++	 * Setting a changenotify needs READ/LIST access
++	 * on the directory handle.
++	 */
++	if (!(fsp->access_mask & SEC_DIR_LIST)) {
++		return NT_STATUS_ACCESS_DENIED;
++	}
++
+ 	if (fsp->notify != NULL) {
+ 		DEBUG(1, ("change_notify_create: fsp->notify != NULL, "
+ 			  "fname = %s\n", fsp->fsp_name->base_name));
+diff --git a/source4/torture/smb2/notify.c b/source4/torture/smb2/notify.c
+index ebb4f8a..a5c9b94 100644
+--- a/source4/torture/smb2/notify.c
++++ b/source4/torture/smb2/notify.c
+@@ -2569,6 +2569,83 @@ done:
+ 	return ok;
+ }
+ 
++/*
++  Test asking for a change notify on a handle without permissions.
++*/
++
++#define BASEDIR_HPERM BASEDIR "_HPERM"
++
++static bool torture_smb2_notify_handle_permissions(
++		struct torture_context *torture,
++		struct smb2_tree *tree)
++{
++	bool ret = true;
++	NTSTATUS status;
++	union smb_notify notify;
++	union smb_open io;
++	struct smb2_handle h1 = {{0}};
++	struct smb2_request *req;
++
++	smb2_deltree(tree, BASEDIR_HPERM);
++	smb2_util_rmdir(tree, BASEDIR_HPERM);
++
++	torture_comment(torture,
++		"TESTING CHANGE NOTIFY "
++		"ON A HANDLE WITHOUT PERMISSIONS\n");
++
++	/*
++	  get a handle on the directory
++	*/
++	ZERO_STRUCT(io.smb2);
++	io.generic.level = RAW_OPEN_SMB2;
++	io.smb2.in.create_flags = 0;
++	io.smb2.in.desired_access = SEC_FILE_READ_ATTRIBUTE;
++	io.smb2.in.create_options = NTCREATEX_OPTIONS_DIRECTORY;
++	io.smb2.in.file_attributes = FILE_ATTRIBUTE_NORMAL;
++	io.smb2.in.share_access = NTCREATEX_SHARE_ACCESS_READ |
++				NTCREATEX_SHARE_ACCESS_WRITE;
++	io.smb2.in.alloc_size = 0;
++	io.smb2.in.create_disposition = NTCREATEX_DISP_CREATE;
++	io.smb2.in.impersonation_level = SMB2_IMPERSONATION_ANONYMOUS;
++	io.smb2.in.security_flags = 0;
++	io.smb2.in.fname = BASEDIR_HPERM;
++
++	status = smb2_create(tree, torture, &io.smb2);
++	CHECK_STATUS(status, NT_STATUS_OK);
++	h1 = io.smb2.out.file.handle;
++
++	/* ask for a change notify,
++	   on file or directory name changes */
++	ZERO_STRUCT(notify.smb2);
++	notify.smb2.level = RAW_NOTIFY_SMB2;
++	notify.smb2.in.buffer_size = 1000;
++	notify.smb2.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
++	notify.smb2.in.file.handle = h1;
++	notify.smb2.in.recursive = true;
++
++	req = smb2_notify_send(tree, &notify.smb2);
++	torture_assert_goto(torture,
++			req != NULL,
++			ret,
++			done,
++			"smb2_notify_send failed\n");
++
++	/*
++	 * Cancel it, we don't really want to wait.
++	 */
++	smb2_cancel(req);
++	status = smb2_notify_recv(req, torture, &notify.smb2);
++	/* Handle h1 doesn't have permissions for ChangeNotify. */
++	CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);
++
++done:
++	if (!smb2_util_handle_empty(h1)) {
++		smb2_util_close(tree, h1);
++	}
++	smb2_deltree(tree, BASEDIR_HPERM);
++	return ret;
++}
++
+ /*
+    basic testing of SMB2 change notify
+ */
+@@ -2602,7 +2679,10 @@ struct torture_suite *torture_smb2_notify_init(TALLOC_CTX *ctx)
+ 				     torture_smb2_notify_rmdir3);
+ 	torture_suite_add_2smb2_test(suite, "rmdir4",
+ 				     torture_smb2_notify_rmdir4);
+-
++	torture_suite_add_1smb2_test(suite,
++				    "handle-permissions",
++				    torture_smb2_notify_handle_permissions);
++ 
+ 	suite->description = talloc_strdup(suite, "SMB2-NOTIFY tests");
+ 
+ 	return suite;
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/CVE-2020-14383.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/CVE-2020-14383.patch
new file mode 100644
index 0000000..3341b80
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/CVE-2020-14383.patch
@@ -0,0 +1,112 @@
+From ff17443fe761eda864d13957bec45f5bac478fe3 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Fri, 11 Dec 2020 14:34:31 +0900
+Subject: [PATCH] CVE-2020-14383: s4/dns: Ensure variable initialization with 
+ NULL. do not crash when additional data not found
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Found by Francis Brosnan BlÃ¡zquez <francis@aspl.es>.
+Based on patches from Francis Brosnan BlÃ¡zquez <francis@aspl.es>
+and Jeremy Allison <jra@samba.org>
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=14472
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=12795
+
+Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+
+Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
+Autobuild-Date(master): Mon Aug 24 00:21:41 UTC 2020 on sn-devel-184
+
+(based on commit df98e7db04c901259dd089e20cd557bdbdeaf379)
+(based on commit 7afe449e7201be92bed8e53cbb37b74af720ef4e
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ .../rpc_server/dnsserver/dcerpc_dnsserver.c   | 31 ++++++++++---------
+ 1 file changed, 17 insertions(+), 14 deletions(-)
+
+diff --git a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c
+index 910de9a1..618c7096 100644
+--- a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c
++++ b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c
+@@ -1754,15 +1754,17 @@ static WERROR dnsserver_enumerate_records(struct dnsserver_state *dsstate,
+ 	TALLOC_CTX *tmp_ctx;
+ 	char *name;
+ 	const char * const attrs[] = { "name", "dnsRecord", NULL };
+-	struct ldb_result *res;
+-	struct DNS_RPC_RECORDS_ARRAY *recs;
++	struct ldb_result *res = NULL;
++	struct DNS_RPC_RECORDS_ARRAY *recs = NULL;
+ 	char **add_names = NULL;
+-	char *rname;
++	char *rname = NULL;
+ 	const char *preference_name = NULL;
+ 	int add_count = 0;
+ 	int i, ret, len;
+ 	WERROR status;
+-	struct dns_tree *tree, *base, *node;
++	struct dns_tree *tree = NULL;
++	struct dns_tree *base = NULL;
++	struct dns_tree *node = NULL;
+ 
+ 	tmp_ctx = talloc_new(mem_ctx);
+ 	W_ERROR_HAVE_NO_MEMORY(tmp_ctx);
+@@ -1845,15 +1847,15 @@ static WERROR dnsserver_enumerate_records(struct dnsserver_state *dsstate,
+ 		}
+ 	}
+ 
+-	talloc_free(res);
+-	talloc_free(tree);
+-	talloc_free(name);
++	TALLOC_FREE(res);
++	TALLOC_FREE(tree);
++	TALLOC_FREE(name);
+ 
+ 	/* Add any additional records */
+ 	if (select_flag & DNS_RPC_VIEW_ADDITIONAL_DATA) {
+ 		for (i=0; i<add_count; i++) {
+-			struct dnsserver_zone *z2;
+-
++			struct dnsserver_zone *z2 = NULL;
++			struct ldb_message *msg = NULL;
+ 			/* Search all the available zones for additional name */
+ 			for (z2 = dsstate->zones; z2; z2 = z2->next) {
+ 				char *encoded_name;
+@@ -1865,14 +1867,15 @@ static WERROR dnsserver_enumerate_records(struct dnsserver_state *dsstate,
+ 						LDB_SCOPE_ONELEVEL, attrs,
+ 						"(&(objectClass=dnsNode)(name=%s)(!(dNSTombstoned=TRUE)))",
+ 						encoded_name);
+-				talloc_free(name);
++				TALLOC_FREE(name);
+ 				if (ret != LDB_SUCCESS) {
+ 					continue;
+ 				}
+ 				if (res->count == 1) {
++					msg = res->msgs[0];
+ 					break;
+ 				} else {
+-					talloc_free(res);
++					TALLOC_FREE(res);
+ 					continue;
+ 				}
+ 			}
+@@ -1885,10 +1888,10 @@ static WERROR dnsserver_enumerate_records(struct dnsserver_state *dsstate,
+ 			}
+ 			status = dns_fill_records_array(tmp_ctx, NULL, DNS_TYPE_A,
+ 							select_flag, rname,
+-							res->msgs[0], 0, recs,
++							msg, 0, recs,
+ 							NULL, NULL);
+-			talloc_free(rname);
+-			talloc_free(res);
++			TALLOC_FREE(rname);
++			TALLOC_FREE(res);
+ 		}
+ 	}
+ 
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.18.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.18.bb
index b5085c9..1a98236 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.18.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.10.18.bb
@@ -28,6 +28,8 @@
            file://0002-util_sec.c-Move-__thread-variable-to-global-scope.patch \
            file://0001-Add-options-to-configure-the-use-of-libbsd.patch \
            file://0001-nsswitch-nsstest.c-Avoid-nss-function-conflicts-with.patch \
+           file://CVE-2020-14318.patch \
+           file://CVE-2020-14383.patch \
            "
 SRC_URI_append_libc-musl = " \
            file://samba-pam.patch \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl/0001-Make-ByteReverseWords-available-for-big-and-little-e.patch b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl/0001-Make-ByteReverseWords-available-for-big-and-little-e.patch
deleted file mode 100644
index 4676769..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl/0001-Make-ByteReverseWords-available-for-big-and-little-e.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b90acc91d0cd276befe7f08f87ba2dc5ee7122ff Mon Sep 17 00:00:00 2001
-From: Tesfa Mael <tesfa@wolfssl.com>
-Date: Wed, 26 Aug 2020 10:13:06 -0700
-Subject: [PATCH] Make ByteReverseWords available for big and little endian
-
----
- wolfcrypt/src/misc.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/wolfcrypt/src/misc.c b/wolfcrypt/src/misc.c
-index fe66ee0a1..23bfa1adc 100644
---- a/wolfcrypt/src/misc.c
-+++ b/wolfcrypt/src/misc.c
-@@ -120,7 +120,6 @@ WC_STATIC WC_INLINE word32 ByteReverseWord32(word32 value)
-     return rotlFixed(value, 16U);
- #endif
- }
--#if defined(LITTLE_ENDIAN_ORDER)
- /* This routine performs a byte swap of words array of a given count. */
- WC_STATIC WC_INLINE void ByteReverseWords(word32* out, const word32* in,
-                                     word32 byteCount)
-@@ -131,7 +130,6 @@ WC_STATIC WC_INLINE void ByteReverseWords(word32* out, const word32* in,
-         out[i] = ByteReverseWord32(in[i]);
- 
- }
--#endif /* LITTLE_ENDIAN_ORDER */
- 
- #if defined(WORD64_AVAILABLE) && !defined(WOLFSSL_NO_WORD64_OPS)
- 
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.5.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.6.0.bb
similarity index 84%
rename from meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.5.0.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.6.0.bb
index 61cf1cc..ad7e923 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.5.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_4.6.0.bb
@@ -13,9 +13,8 @@
 RPROVIDES_${PN} = "cyassl"
 
 SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https \
-           file://0001-Make-ByteReverseWords-available-for-big-and-little-e.patch \
 "
-SRCREV = "0fa5af9929ce2ee99e8789996a3048f41a99830e"
+SRCREV = "9c87f979a7f1d3a6d786b260653d566c1d31a1c4"
 S = "${WORKDIR}/git"
 
 inherit autotools
diff --git a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
index d55dc4a..33de8ca 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.27.bb
@@ -29,7 +29,7 @@
                  --with-plugindir='${libdir}/sasl2' \
                  andrew_cv_runpath_switch=none"
 
-PACKAGECONFIG ??= "ntlm \
+PACKAGECONFIG ??= "\
     ${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)} \
 "
 PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5,"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Compare-with-max-int-instead-of-max-.patch b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Compare-with-max-int-instead-of-max-.patch
deleted file mode 100644
index c71f012..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Compare-with-max-int-instead-of-max-.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 7bdaa32c80bb7d37668c1ff6d88bb02428459a0f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 21 Oct 2020 09:11:20 -0700
-Subject: [PATCH] libopeniscsiusr: Compare with max int instead of max long
-
-This compares value member of int_list_tbl struct which is of unsigned
-int type.
-
-struct int_list_tbl {
-const char *name;
-unsigned int value;
-};
-
-Clang compiler reports this comparison when
--Wtautological-constant-out-of-range-compare is enabled
-
-| idbm.c:1042:2: error: result of comparison of constant 18446744073709551615 with expression of type 'unsigned int' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
-|         _rec_int_list(SESSION_CHAP_ALGS, recs, node, session.auth.chap_algs,
-|         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-| idbm.c:263:23: note: expanded from macro '_rec_int_list'
-|                 if (_org->_name[_i] != ~0UL) { \
-|                     ~~~~~~~~~~~~~~~ ^  ~~~~
-
-Since max value for int can be less than unsinged long e.g. on LP64 its
-better to use UINT_MAX here
-
-Upstream-Status: Submitted [https://github.com/open-iscsi/open-iscsi/pull/227]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libopeniscsiusr/idbm.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
-index 7bc2381..060196f 100644
---- a/libopeniscsiusr/idbm.c
-+++ b/libopeniscsiusr/idbm.c
-@@ -260,7 +260,7 @@ do {\
- 	_recs[_n].type = TYPE_INT_LIST; \
- 	_strncpy(_recs[_n].name, _key, NAME_MAXVAL); \
- 	for (unsigned int _i = 0; _i < ARRAY_LEN(_org->_name); _i++) { \
--		if (_org->_name[_i] != ~0UL) { \
-+		if (_org->_name[_i] != UINT_MAX) { \
- 			for (unsigned int _j = 0; _j < ARRAY_LEN(_tbl); _j++) { \
- 				if (_tbl[_j].value == _org->_name[_i]) { \
- 					strcat(_recs[_n].value, _tbl[_j].name); \
--- 
-2.29.0
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.2.bb b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.3.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.2.bb
rename to meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.3.bb
index dfcd4ee..4a9cf9d 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.2.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.3.bb
@@ -12,11 +12,10 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRCREV ?= "802688debcd88c48edabe86deb7e7ed47ebadc26"
+SRCREV ?= "34e3ffb194f6fa3028c0eb2ff57e7db2d1026771"
 
 SRC_URI = "git://github.com/open-iscsi/open-iscsi \
            file://0001-Makefile-Do-not-set-Werror.patch \
-           file://0001-libopeniscsiusr-Compare-with-max-int-instead-of-max-.patch \
            file://initd.debian \
            file://99_iscsi-initiator-utils \
            file://iscsi-initiator \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.20.08.bb b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.20.11.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.20.08.bb
rename to meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.20.11.bb
index 5516fc4..ade2816 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.20.08.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.20.11.bb
@@ -29,8 +29,8 @@
            file://0001-Fix-build-with-fno-common.patch \
            file://0001-Use-correct-printf-format-for-__fsblkcnt_t.patch \
            "
-SRC_URI[md5sum] = "02cfe732d194339237da6adce8e54384"
-SRC_URI[sha256sum] = "84268b90dc48a6675e5a77e2b20390a04bb59deb48a829102a9dbc4b9ac27483"
+SRC_URI[md5sum] = "9c7871a2b45f262b7aee2e9d073798e4"
+SRC_URI[sha256sum] = "11b62e6d20c449a297da0c0c15b560747c9ec884305beffed4ca4c192fa9f22c"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/opensaf/files/releases"
 
diff --git a/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
index 4c62da8..dc1d6c6 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
@@ -89,7 +89,7 @@
 
 ALTERNATIVE_${PN} = "tftp"
 ALTERNATIVE_TARGET[tftp] = "${bindir}/tftp-hpa"
-ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_PRIORITY = "100"
 
 
 SYSTEMD_PACKAGES = "tftp-hpa-server"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch b/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch
index d2eb156..f3dc31c 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/vblade/files/cross.patch
@@ -8,8 +8,8 @@
 @@ -9,8 +9,6 @@
  mandir = ${sharedir}/man
  
- O=aoe.o bpf.o ${PLATFORM}.o ata.o
--CFLAGS += -Wall -g -O2
+ O=aoe.o bpf.o ${PLATFORM}.o ata.o dat.o
+-CFLAGS += -Wall -g -O2 -fno-common
 -CC = gcc
  
  vblade: $O
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/files/gcc-10.patch b/meta-openembedded/meta-networking/recipes-daemons/vblade/files/gcc-10.patch
deleted file mode 100644
index 9a42aa3..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/vblade/files/gcc-10.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From af17efc862b9acfd63ce2ecb21f75ed890a93a5d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20K=C3=B6lbl?= <koelblandreas@freenet.de>
-Date: Thu, 9 Jul 2020 14:29:18 +0200
-Subject: [PATCH] Fix linkage of global identifiers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Align the code to the standard and modern compilers.
-
-Upstream-Status: Submitted [https://github.com/OpenAoE/vblade/pull/15]
-Signed-off-by: Andreas Kölbl <koelblandreas@freenet.de>
----
- dat.c    | 12 ++++++++++++
- dat.h    | 19 ++++++++++---------
- makefile |  7 +++++--
- 3 files changed, 27 insertions(+), 11 deletions(-)
- create mode 100644 dat.c
-
---- /dev/null
-+++ b/dat.c
-@@ -0,0 +1,12 @@
-+/* dat.c: Global memory for vblade AoE target */
-+#include "dat.h"
-+
-+int	shelf, slot;
-+ulong	aoetag;
-+uchar	mac[6];
-+int	bfd;		// block file descriptor
-+int	sfd;		// socket file descriptor
-+vlong	size;		// size of vblade
-+vlong	offset;
-+char	*progname;
-+char	serial[Nserial+1];
---- a/dat.h
-+++ b/dat.h
-@@ -1,4 +1,5 @@
- /* dat.h: include file for vblade AoE target */
-+#include <sys/types.h>
- 
- #define	nil	((void *)0)
- /*
-@@ -163,12 +164,12 @@ enum {
- 	Nserial= 20,
- };
- 
--int	shelf, slot;
--ulong	aoetag;
--uchar	mac[6];
--int	bfd;		// block file descriptor
--int	sfd;		// socket file descriptor
--vlong	size;		// size of vblade
--vlong	offset;
--char	*progname;
--char	serial[Nserial+1];
-+extern int	shelf, slot;
-+extern ulong	aoetag;
-+extern uchar	mac[6];
-+extern int	bfd;		// block file descriptor
-+extern int	sfd;		// socket file descriptor
-+extern vlong	size;		// size of vblade
-+extern vlong	offset;
-+extern char	*progname;
-+extern char	serial[Nserial+1];
---- a/makefile
-+++ b/makefile
-@@ -8,7 +8,7 @@ sbindir = ${prefix}/sbin
- sharedir = ${prefix}/share
- mandir = ${sharedir}/man
- 
--O=aoe.o bpf.o ${PLATFORM}.o ata.o
-+O=aoe.o bpf.o ${PLATFORM}.o ata.o dat.o
- 
- vblade: $O
- 	${CC} ${LDFLAGS} -o vblade $O
-@@ -25,6 +25,9 @@ ata.o : ata.c config.h dat.h fns.h makef
- bpf.o : bpf.c
- 	${CC} ${CFLAGS} -c $<
- 
-+dat.o : dat.c
-+	${CC} ${CFLAGS} -c $<
-+
- config.h : config/config.h.in makefile
- 	@if ${CC} ${CFLAGS} config/u64.c > /dev/null 2>&1; then \
- 	  sh -xc "cp config/config.h.in config.h"; \
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch b/meta-openembedded/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch
index a74452d..71af47a 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch
+++ b/meta-openembedded/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch
@@ -9,7 +9,7 @@
 --- a/makefile
 +++ b/makefile
 @@ -11,7 +11,7 @@ mandir = ${sharedir}/man
- O=aoe.o bpf.o ${PLATFORM}.o ata.o
+ O=aoe.o bpf.o ${PLATFORM}.o ata.o dat.o
  
  vblade: $O
 -	${CC} -o vblade $O
diff --git a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_24.bb b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_24.bb
rename to meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb
index 09ba8cf..647abbf 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_24.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/vblade/vblade_25.bb
@@ -6,11 +6,10 @@
 
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/aoetools/files/vblade/"
 
-SRCREV = "a7f48bda5bf1646f6450601049bf4b74053adbb3"
+SRCREV = "5f1a0ba8b9815e3f08a3e2635a17f78bbf2a5b10"
 SRC_URI = "git://github.com/OpenAoE/vblade \
            file://cross.patch \
            file://makefile-add-ldflags.patch \
-           file://gcc-10.patch \
            file://${BPN}.conf \
            file://${BPN}.init \
            file://${BPN}.service \
diff --git a/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.2.0.bb b/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.3.1.bb
similarity index 85%
rename from meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.2.0.bb
rename to meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.3.1.bb
index f46ddbf..4a2ab3e 100644
--- a/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.2.0.bb
+++ b/meta-openembedded/meta-networking/recipes-devtools/python/python3-ldap_3.3.1.bb
@@ -15,8 +15,8 @@
 inherit pypi setuptools3
 
 LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
-SRC_URI[md5sum] = "fe22522208dc9b06d16eb70f8553eaab"
-SRC_URI[sha256sum] = "7d1c4b15375a533564aad3d3deade789221e450052b21ebb9720fb822eccdb8e"
+SRC_URI[md5sum] = "7608579722c491e42f5f63b3f88a95fb"
+SRC_URI[sha256sum] = "4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5"
 
 do_configure_prepend() {
     sed -i -e 's:^library_dirs =.*::' ${S}/setup.cfg
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch
deleted file mode 100644
index 90b6979..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From dd35afc9ce1004128a754d5eeb8c5c2cb32ae420 Mon Sep 17 00:00:00 2001
-From: Bart De Schuymer <bdschuym@pandora.be>
-Date: Tue, 3 Jul 2012 18:47:32 +0000
-Subject: [PATCH 01/10] add RARP and update iana url
-
----
- ethertypes | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/ethertypes b/ethertypes
-index 5e700f6..813177b 100644
---- a/ethertypes
-+++ b/ethertypes
-@@ -5,6 +5,7 @@
- #
- # This list could be found on:
- #         http://www.iana.org/assignments/ethernet-numbers
-+#         http://www.iana.org/assignments/ieee-802-numbers
- #
- # <name>    <hexnumber> <alias1>...<alias35> #Comment
- #
-@@ -21,15 +22,16 @@ LAT		6004			# DEC LAT
- DIAG		6005			# DEC Diagnostics
- CUST		6006			# DEC Customer use
- SCA		6007			# DEC Systems Comms Arch
--TEB		6558             	# Trans Ether Bridging   [RFC1701]
--RAW_FR  	6559                   	# Raw Frame Relay        [RFC1701]
-+TEB		6558			# Trans Ether Bridging   [RFC1701]
-+RAW_FR  	6559			# Raw Frame Relay        [RFC1701]
-+RARP		8035			# Reverse ARP            [RFC903]
- AARP		80F3			# Appletalk AARP
--ATALK		809B                  	# Appletalk
-+ATALK		809B			# Appletalk
- 802_1Q		8100	8021q 1q 802.1q	dot1q # 802.1Q Virtual LAN tagged frame
- IPX		8137			# Novell IPX
- NetBEUI		8191			# NetBEUI
- IPv6		86DD	ip6 		# IP version 6
--PPP		880B                    # PPP
-+PPP		880B			# PPP
- ATMMPOA		884C			# MultiProtocol over ATM
- PPP_DISC	8863			# PPPoE discovery messages
- PPP_SES		8864			# PPPoE session messages
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch
deleted file mode 100644
index 87b0e9b..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2a5333fc8b4825251adfb717d980d89cefde38d6 Mon Sep 17 00:00:00 2001
-From: Petri Gynther <petri.gynther@gmail.com>
-Date: Sun, 24 Feb 2013 10:56:59 +0100
-Subject: [PATCH 02/10] fix compilation warning
-
----
- communication.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/communication.c b/communication.c
-index 62ed667..ba058c0 100644
---- a/communication.c
-+++ b/communication.c
-@@ -282,7 +282,7 @@ static int store_counters_in_file(char *filename, struct ebt_u_replace *repl)
- 	}
- close_file:
- 	fclose(file);
--	return 0;
-+	return ret;
- }
- 
- /* Gets executed after ebt_deliver_table. Delivers the counters to the kernel
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch
deleted file mode 100644
index c8573a4..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a6faf3b50d6af4768b7b853cb536944fb18e1450 Mon Sep 17 00:00:00 2001
-From: Bart De Schuymer <bdschuym@pandora.be>
-Date: Wed, 3 Jul 2013 22:12:47 +0200
-Subject: [PATCH 03/10] add info about -Wl,-no-as-needed
-
----
- INSTALL | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/INSTALL b/INSTALL
-index 4a05c67..e90d5c1 100644
---- a/INSTALL
-+++ b/INSTALL
-@@ -39,6 +39,8 @@ That's all
- You can also use a base directory different from the root directory (/),
- using the DESTDIR option. See the Makefile for more details.
- 
-+You might need to set LDFLAGS=-Wl,-no-as-needed to build ebtables correctly
-+on your system.
- 
- ADDITIONAL PROGRAMS:
- ----------------------
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch
deleted file mode 100644
index d8f2795..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b0617af37b8b1aafb43e8019135bea44c2d94c28 Mon Sep 17 00:00:00 2001
-From: Luis Fernando <tdthp@terra.com.br>
-Date: Wed, 3 Jul 2013 22:19:55 +0200
-Subject: [PATCH 04/10] workaround for kernel regression bug: IPv6
- source/destination addresses are potentially not matched correctly
-
----
- extensions/ebt_ip6.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c
-index 0465e77..bbdc4ae 100644
---- a/extensions/ebt_ip6.c
-+++ b/extensions/ebt_ip6.c
-@@ -312,6 +312,10 @@ static void init(struct ebt_entry_match *match)
- 
- 	ipinfo->invflags = 0;
- 	ipinfo->bitmask = 0;
-+	memset(ipinfo->saddr.s6_addr, 0, sizeof(ipinfo->saddr.s6_addr));
-+	memset(ipinfo->smsk.s6_addr, 0, sizeof(ipinfo->smsk.s6_addr));
-+	memset(ipinfo->daddr.s6_addr, 0, sizeof(ipinfo->daddr.s6_addr));
-+	memset(ipinfo->dmsk.s6_addr, 0, sizeof(ipinfo->dmsk.s6_addr));
- }
- 
- #define OPT_SOURCE 0x01
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch
deleted file mode 100644
index 9585fd2..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 15d3ab8a4a167dc44396b003d2ec01841949972f Mon Sep 17 00:00:00 2001
-From: Sanket Shah <sanket.shah@cyberoam.com>
-Date: Wed, 31 Jul 2013 21:40:08 +0200
-Subject: [PATCH 05/10] Add --noflush command line support for ebtables-restore
-
----
- ebtables-restore.c | 29 +++++++++++++++++++++++++----
- 1 file changed, 25 insertions(+), 4 deletions(-)
-
-diff --git a/ebtables-restore.c b/ebtables-restore.c
-index ea02960..bb4d0cf 100644
---- a/ebtables-restore.c
-+++ b/ebtables-restore.c
-@@ -22,13 +22,25 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h>
-+#include <getopt.h>
- #include "include/ebtables_u.h"
- 
-+static const struct option options[] = {
-+	{.name = "noflush", .has_arg = 0, .val = 'n'},
-+	{ 0 }
-+};
-+
- static struct ebt_u_replace replace[3];
- void ebt_early_init_once();
- 
- #define OPT_KERNELDATA  0x800 /* Also defined in ebtables.c */
- 
-+static void print_usage()
-+{
-+	fprintf(stderr, "Usage: ebtables-restore [ --noflush ]\n");
-+	exit(1);
-+}
-+
- static void copy_table_names()
- {
- 	strcpy(replace[0].name, "filter");
-@@ -41,11 +53,20 @@ static void copy_table_names()
- int main(int argc_, char *argv_[])
- {
- 	char *argv[EBTD_ARGC_MAX], cmdline[EBTD_CMDLINE_MAXLN];
--	int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace;
-+	int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace, c, flush = 1;
- 	char ebtables_str[] = "ebtables";
- 
--	if (argc_ != 1)
--		ebtrest_print_error("options are not supported");
-+	while ((c = getopt_long(argc_, argv_, "n", options, NULL)) != -1) {
-+		switch(c) {
-+			case 'n':
-+				flush = 0;
-+				break;
-+			default:
-+				print_usage();
-+				break;
-+		}
-+	}
-+
- 	ebt_silent = 0;
- 	copy_table_names();
- 	ebt_early_init_once();
-@@ -68,7 +89,7 @@ int main(int argc_, char *argv_[])
- 				ebtrest_print_error("table '%s' was not recognized", cmdline+1);
- 			table_nr = i;
- 			replace[table_nr].command = 11;
--			ebt_get_kernel_table(&replace[table_nr], 1);
-+			ebt_get_kernel_table(&replace[table_nr], flush);
- 			replace[table_nr].command = 0;
- 			replace[table_nr].flags = OPT_KERNELDATA; /* Prevent do_command from initialising replace */
- 			continue;
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch
deleted file mode 100644
index 21f8e58..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 85a0f6d77a9d5c0e7ef7948395f0f6b1612dc987 Mon Sep 17 00:00:00 2001
-From: Bart De Schuymer <bdschuym@pandora.be>
-Date: Mon, 14 Apr 2014 22:04:55 +0200
-Subject: [PATCH 06/10] don't print IPv6 mask if it's all ones (based on patch
- by Mariusz Mazur <mmazur at axeos.com>)
-
----
- extensions/ebt_ip6.c |  4 ++--
- include/ebtables_u.h |  1 +
- useful_functions.c   | 13 +++++++++++++
- 3 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c
-index bbdc4ae..e3e0956 100644
---- a/extensions/ebt_ip6.c
-+++ b/extensions/ebt_ip6.c
-@@ -449,14 +449,14 @@ static void print(const struct ebt_u_entry *entry,
- 		if (ipinfo->invflags & EBT_IP6_SOURCE)
- 			printf("! ");
- 		printf("%s", ebt_ip6_to_numeric(&ipinfo->saddr));
--		printf("/%s ", ebt_ip6_to_numeric(&ipinfo->smsk));
-+		printf("%s ", ebt_ip6_mask_to_string(&ipinfo->smsk));
- 	}
- 	if (ipinfo->bitmask & EBT_IP6_DEST) {
- 		printf("--ip6-dst ");
- 		if (ipinfo->invflags & EBT_IP6_DEST)
- 			printf("! ");
- 		printf("%s", ebt_ip6_to_numeric(&ipinfo->daddr));
--		printf("/%s ", ebt_ip6_to_numeric(&ipinfo->dmsk));
-+		printf("%s ", ebt_ip6_mask_to_string(&ipinfo->dmsk));
- 	}
- 	if (ipinfo->bitmask & EBT_IP6_TCLASS) {
- 		printf("--ip6-tclass ");
-diff --git a/include/ebtables_u.h b/include/ebtables_u.h
-index ab615c1..35a5bcc 100644
---- a/include/ebtables_u.h
-+++ b/include/ebtables_u.h
-@@ -303,6 +303,7 @@ char *ebt_mask_to_dotted(uint32_t mask);
- void ebt_parse_ip6_address(char *address, struct in6_addr *addr, 
- 						   struct in6_addr *msk);
- char *ebt_ip6_to_numeric(const struct in6_addr *addrp);
-+char *ebt_ip6_mask_to_string(const struct in6_addr *msk);
- 
- 
- int do_command(int argc, char *argv[], int exec_style,
-diff --git a/useful_functions.c b/useful_functions.c
-index d20b68e..d14cbe9 100644
---- a/useful_functions.c
-+++ b/useful_functions.c
-@@ -411,3 +411,16 @@ char *ebt_ip6_to_numeric(const struct in6_addr *addrp)
- 	static char buf[50+1];
- 	return (char *)inet_ntop(AF_INET6, addrp, buf, sizeof(buf));
- }
-+
-+char *ebt_ip6_mask_to_string(const struct in6_addr *msk)
-+{
-+   	/* /0000:0000:0000:0000:0000:000.000.000.000
-+	 * /0000:0000:0000:0000:0000:0000:0000:0000 */
-+	static char buf[51+1];
-+	if (msk->s6_addr32[0] == 0xFFFFFFFFL && msk->s6_addr32[1] == 0xFFFFFFFFL &&
-+	    msk->s6_addr32[2] == 0xFFFFFFFFL && msk->s6_addr32[3] == 0xFFFFFFFFL)
-+		*buf = '\0';
-+	else
-+		sprintf(buf, "/%s", ebt_ip6_to_numeric(msk));
-+	return buf;
-+}
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch
deleted file mode 100644
index 6fbe7df..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From a60c7d4a6d05387aceb8ae9c38390d0f9bae84a2 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sat, 16 May 2015 12:22:39 +0200
-Subject: [PATCH 07/10] extensions: Use stdint types
-
-Signed-off-by: Felix Janda <felix.janda@posteo.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- extensions/ebt_ip6.c   |  4 ++--
- extensions/ebt_limit.c | 10 +++++-----
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c
-index e3e0956..dd48547 100644
---- a/extensions/ebt_ip6.c
-+++ b/extensions/ebt_ip6.c
-@@ -53,8 +53,8 @@ static const struct option opts[] =
- 
- struct icmpv6_names {
- 	const char *name;
--	u_int8_t type;
--	u_int8_t code_min, code_max;
-+	uint8_t type;
-+	uint8_t code_min, code_max;
- };
- 
- static const struct icmpv6_names icmpv6_codes[] = {
-diff --git a/extensions/ebt_limit.c b/extensions/ebt_limit.c
-index ee40e5c..d189a09 100644
---- a/extensions/ebt_limit.c
-+++ b/extensions/ebt_limit.c
-@@ -59,11 +59,11 @@ static void print_help(void)
- "                                default %u\n", EBT_LIMIT_BURST);
- }
- 
--static int parse_rate(const char *rate, u_int32_t *val)
-+static int parse_rate(const char *rate, uint32_t *val)
- {
- 	const char *delim;
--	u_int32_t r;
--	u_int32_t mult = 1;  /* Seconds by default. */
-+	uint32_t r;
-+	uint32_t mult = 1;  /* Seconds by default. */
- 
- 	delim = strchr(rate, '/');
- 	if (delim) {
-@@ -151,7 +151,7 @@ static void final_check(const struct ebt_u_entry *entry,
- struct rates
- {
- 	const char *name;
--	u_int32_t mult;
-+	uint32_t mult;
- };
- 
- static struct rates g_rates[] =
-@@ -162,7 +162,7 @@ static struct rates g_rates[] =
- 	{ "sec", EBT_LIMIT_SCALE }
- };
- 
--static void print_rate(u_int32_t period)
-+static void print_rate(uint32_t period)
- {
- 	unsigned int i;
- 
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch
deleted file mode 100644
index df3f521..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 6ed23c8c2bc5efc3956e7bb6155afc8f45e6ae1a Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sat, 16 May 2015 12:31:58 +0200
-Subject: [PATCH 08/10] ethernetdb.h: Remove C++ specific compiler hint macro
- _THROW
-
-Fixes compilation with musl libc
-
-Signed-off-by: Felix Janda <felix.janda@posteo.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- include/ethernetdb.h | 11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/include/ethernetdb.h b/include/ethernetdb.h
-index 46d8bfd..1683abe 100644
---- a/include/ethernetdb.h
-+++ b/include/ethernetdb.h
-@@ -38,21 +38,20 @@ struct ethertypeent {
- 
- /* Open ethertype data base files and mark them as staying open even
-    after a later search if STAY_OPEN is non-zero.  */
--extern void setethertypeent(int __stay_open) __THROW;
-+extern void setethertypeent(int __stay_open);
- 
- /* Close ethertype data base files and clear `stay open' flag.  */
--extern void endethertypeent(void) __THROW;
-+extern void endethertypeent(void);
- 
- /* Get next entry from ethertype data base file.  Open data base if
-    necessary.  */
--extern struct ethertypeent *getethertypeent(void) __THROW;
-+extern struct ethertypeent *getethertypeent(void);
- 
- /* Return entry from ethertype data base for network with NAME.  */
--extern struct ethertypeent *getethertypebyname(__const char *__name)
--    __THROW;
-+extern struct ethertypeent *getethertypebyname(__const char *__name);
- 
- /* Return entry from ethertype data base which number is PROTO.  */
--extern struct ethertypeent *getethertypebynumber(int __ethertype) __THROW;
-+extern struct ethertypeent *getethertypebynumber(int __ethertype);
- 
- 
- #endif				/* ethernetdb.h */
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch
deleted file mode 100644
index 248582c..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From e6b367c0c2668341c47242d099f4d2048ae575ef Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alin=20N=C4=83stac?= <alin.nastac@gmail.com>
-Date: Thu, 22 Oct 2015 16:41:03 +0200
-Subject: [PATCH 09/10] ebtables: Allow RETURN target rules in user defined
- chains
-
-During loop checking ebtables marks entries with '1 << NF_BR_NUMHOOKS' if
-they're called from a base chain rather than a user defined chain.
-
-This can be used by ebtables targets that can encode a special return
-value to bail out if e.g. RETURN is used from a base chain.
-
-Unfortunately, this is broken, since the '1 << NF_BR_NUMHOOKS' is also
-copied to called user-defined-chains (i.e., a user defined chain can no
-longer be distinguished from a base chain):
-
-root@OpenWrt:~# ebtables -N foo
-root@OpenWrt:~# ebtables -A OUTPUT -j foo
-root@OpenWrt:~# ebtables -A foo -j mark --mark-or 3 --mark-target RETURN
---mark-target RETURN not allowed on base chain.
-
-This works if -A OUTPUT -j foo is omitted, but will still appear
-if we try to call foo from OUTPUT afterwards.
-
-After this patch we still reject
-'-A OUTPUT -j mark .. --mark-target RETURN'.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
- libebtc.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libebtc.c b/libebtc.c
-index 17ba8f2..74830ec 100644
---- a/libebtc.c
-+++ b/libebtc.c
-@@ -1102,7 +1102,7 @@ void ebt_check_for_loops(struct ebt_u_replace *replace)
- 			/* check if we've dealt with this chain already */
- 			if (entries2->hook_mask & (1<<i))
- 				goto letscontinue;
--			entries2->hook_mask |= entries->hook_mask;
-+			entries2->hook_mask |= entries->hook_mask & ~(1 << NF_BR_NUMHOOKS);
- 			/* Jump to the chain, make sure we know how to get back */
- 			stack[sp].chain_nr = chain_nr;
- 			stack[sp].n = j;
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch
deleted file mode 100644
index a6ef9cd..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-From b7cee37734007fced7a4d5ed586c3a9e5ad92878 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 26 Mar 2017 13:12:21 -0700
-Subject: [PATCH 10/10] Adjust header include sequence
-
-This fixes the build with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- extensions/ebt_among.c    |   2 +-
- extensions/ebt_arpreply.c |   2 +-
- extensions/ebt_nat.c      |   2 +-
- include/linux/if_ether.h  | 126 ----------------------------------------------
- useful_functions.c        |   4 +-
- 5 files changed, 5 insertions(+), 131 deletions(-)
- delete mode 100644 include/linux/if_ether.h
-
-diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c
-index f97d07e..b096847 100644
---- a/extensions/ebt_among.c
-+++ b/extensions/ebt_among.c
-@@ -12,8 +12,8 @@
- #include <getopt.h>
- #include <ctype.h>
- #include <unistd.h>
--#include "../include/ebtables_u.h"
- #include <netinet/ether.h>
-+#include "../include/ebtables_u.h"
- #include "../include/ethernetdb.h"
- #include <linux/if_ether.h>
- #include <linux/netfilter_bridge/ebt_among.h>
-diff --git a/extensions/ebt_arpreply.c b/extensions/ebt_arpreply.c
-index c3757f3..c5102a4 100644
---- a/extensions/ebt_arpreply.c
-+++ b/extensions/ebt_arpreply.c
-@@ -11,8 +11,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <getopt.h>
--#include "../include/ebtables_u.h"
- #include <netinet/ether.h>
-+#include "../include/ebtables_u.h"
- #include <linux/netfilter_bridge/ebt_arpreply.h>
- 
- static int mac_supplied;
-diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
-index e6afbf8..8d318d1 100644
---- a/extensions/ebt_nat.c
-+++ b/extensions/ebt_nat.c
-@@ -10,8 +10,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <getopt.h>
--#include "../include/ebtables_u.h"
- #include <netinet/ether.h>
-+#include "../include/ebtables_u.h"
- #include <linux/netfilter_bridge/ebt_nat.h>
- 
- static int to_source_supplied, to_dest_supplied;
-diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
-deleted file mode 100644
-index 28a15ff..0000000
---- a/include/linux/if_ether.h
-+++ /dev/null
-@@ -1,126 +0,0 @@
--/*
-- * INET		An implementation of the TCP/IP protocol suite for the LINUX
-- *		operating system.  INET is implemented using the  BSD Socket
-- *		interface as the means of communication with the user level.
-- *
-- *		Global definitions for the Ethernet IEEE 802.3 interface.
-- *
-- * Version:	@(#)if_ether.h	1.0.1a	02/08/94
-- *
-- * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
-- *		Donald Becker, <becker@super.org>
-- *		Alan Cox, <alan@lxorguk.ukuu.org.uk>
-- *		Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk>
-- *
-- *		This program is free software; you can redistribute it and/or
-- *		modify it under the terms of the GNU General Public License
-- *		as published by the Free Software Foundation; either version
-- *		2 of the License, or (at your option) any later version.
-- */
--
--#ifndef _LINUX_IF_ETHER_H
--#define _LINUX_IF_ETHER_H
--
--#include <linux/types.h>
--
--/*
-- *	IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
-- *	and FCS/CRC (frame check sequence).
-- */
--
--#define ETH_ALEN	6		/* Octets in one ethernet addr	 */
--#define ETH_HLEN	14		/* Total octets in header.	 */
--#define ETH_ZLEN	60		/* Min. octets in frame sans FCS */
--#define ETH_DATA_LEN	1500		/* Max. octets in payload	 */
--#define ETH_FRAME_LEN	1514		/* Max. octets in frame sans FCS */
--#define ETH_FCS_LEN	4		/* Octets in the FCS		 */
--
--/*
-- *	These are the defined Ethernet Protocol ID's.
-- */
--
--#define ETH_P_LOOP	0x0060		/* Ethernet Loopback packet	*/
--#define ETH_P_PUP	0x0200		/* Xerox PUP packet		*/
--#define ETH_P_PUPAT	0x0201		/* Xerox PUP Addr Trans packet	*/
--#define ETH_P_IP	0x0800		/* Internet Protocol packet	*/
--#define ETH_P_X25	0x0805		/* CCITT X.25			*/
--#define ETH_P_ARP	0x0806		/* Address Resolution packet	*/
--#define	ETH_P_BPQ	0x08FF		/* G8BPQ AX.25 Ethernet Packet	[ NOT AN OFFICIALLY REGISTERED ID ] */
--#define ETH_P_IEEEPUP	0x0a00		/* Xerox IEEE802.3 PUP packet */
--#define ETH_P_IEEEPUPAT	0x0a01		/* Xerox IEEE802.3 PUP Addr Trans packet */
--#define ETH_P_DEC       0x6000          /* DEC Assigned proto           */
--#define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */
--#define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */
--#define ETH_P_DNA_RT    0x6003          /* DEC DNA Routing              */
--#define ETH_P_LAT       0x6004          /* DEC LAT                      */
--#define ETH_P_DIAG      0x6005          /* DEC Diagnostics              */
--#define ETH_P_CUST      0x6006          /* DEC Customer use             */
--#define ETH_P_SCA       0x6007          /* DEC Systems Comms Arch       */
--#define ETH_P_TEB	0x6558		/* Trans Ether Bridging		*/
--#define ETH_P_RARP      0x8035		/* Reverse Addr Res packet	*/
--#define ETH_P_ATALK	0x809B		/* Appletalk DDP		*/
--#define ETH_P_AARP	0x80F3		/* Appletalk AARP		*/
--#define ETH_P_8021Q	0x8100          /* 802.1Q VLAN Extended Header  */
--#define ETH_P_IPX	0x8137		/* IPX over DIX			*/
--#define ETH_P_IPV6	0x86DD		/* IPv6 over bluebook		*/
--#define ETH_P_PAUSE	0x8808		/* IEEE Pause frames. See 802.3 31B */
--#define ETH_P_SLOW	0x8809		/* Slow Protocol. See 802.3ad 43B */
--#define ETH_P_WCCP	0x883E		/* Web-cache coordination protocol
--					 * defined in draft-wilson-wrec-wccp-v2-00.txt */
--#define ETH_P_PPP_DISC	0x8863		/* PPPoE discovery messages     */
--#define ETH_P_PPP_SES	0x8864		/* PPPoE session messages	*/
--#define ETH_P_MPLS_UC	0x8847		/* MPLS Unicast traffic		*/
--#define ETH_P_MPLS_MC	0x8848		/* MPLS Multicast traffic	*/
--#define ETH_P_ATMMPOA	0x884c		/* MultiProtocol Over ATM	*/
--#define ETH_P_LINK_CTL	0x886c		/* HPNA, wlan link local tunnel */
--#define ETH_P_ATMFATE	0x8884		/* Frame-based ATM Transport
--					 * over Ethernet
--					 */
--#define ETH_P_PAE	0x888E		/* Port Access Entity (IEEE 802.1X) */
--#define ETH_P_AOE	0x88A2		/* ATA over Ethernet		*/
--#define ETH_P_TIPC	0x88CA		/* TIPC 			*/
--#define ETH_P_1588	0x88F7		/* IEEE 1588 Timesync */
--#define ETH_P_FCOE	0x8906		/* Fibre Channel over Ethernet  */
--#define ETH_P_FIP	0x8914		/* FCoE Initialization Protocol */
--#define ETH_P_EDSA	0xDADA		/* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
--
--/*
-- *	Non DIX types. Won't clash for 1500 types.
-- */
--
--#define ETH_P_802_3	0x0001		/* Dummy type for 802.3 frames  */
--#define ETH_P_AX25	0x0002		/* Dummy protocol id for AX.25  */
--#define ETH_P_ALL	0x0003		/* Every packet (be careful!!!) */
--#define ETH_P_802_2	0x0004		/* 802.2 frames 		*/
--#define ETH_P_SNAP	0x0005		/* Internal only		*/
--#define ETH_P_DDCMP     0x0006          /* DEC DDCMP: Internal only     */
--#define ETH_P_WAN_PPP   0x0007          /* Dummy type for WAN PPP frames*/
--#define ETH_P_PPP_MP    0x0008          /* Dummy type for PPP MP frames */
--#define ETH_P_LOCALTALK 0x0009		/* Localtalk pseudo type 	*/
--#define ETH_P_CAN	0x000C		/* Controller Area Network      */
--#define ETH_P_PPPTALK	0x0010		/* Dummy type for Atalk over PPP*/
--#define ETH_P_TR_802_2	0x0011		/* 802.2 frames 		*/
--#define ETH_P_MOBITEX	0x0015		/* Mobitex (kaz@cafe.net)	*/
--#define ETH_P_CONTROL	0x0016		/* Card specific control frames */
--#define ETH_P_IRDA	0x0017		/* Linux-IrDA			*/
--#define ETH_P_ECONET	0x0018		/* Acorn Econet			*/
--#define ETH_P_HDLC	0x0019		/* HDLC frames			*/
--#define ETH_P_ARCNET	0x001A		/* 1A for ArcNet :-)            */
--#define ETH_P_DSA	0x001B		/* Distributed Switch Arch.	*/
--#define ETH_P_TRAILER	0x001C		/* Trailer switch tagging	*/
--#define ETH_P_PHONET	0x00F5		/* Nokia Phonet frames          */
--#define ETH_P_IEEE802154 0x00F6		/* IEEE802.15.4 frame		*/
--#define ETH_P_CAIF	0x00F7		/* ST-Ericsson CAIF protocol	*/
--
--/*
-- *	This is an Ethernet frame header.
-- */
--
--struct ethhdr {
--	unsigned char	h_dest[ETH_ALEN];	/* destination eth addr	*/
--	unsigned char	h_source[ETH_ALEN];	/* source ether addr	*/
--	__be16		h_proto;		/* packet type ID field	*/
--} __attribute__((packed));
--
--
--#endif	/* _LINUX_IF_ETHER_H */
-diff --git a/useful_functions.c b/useful_functions.c
-index d14cbe9..c304f4d 100644
---- a/useful_functions.c
-+++ b/useful_functions.c
-@@ -22,8 +22,6 @@
-  * along with this program; if not, write to the Free Software
-  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-  */
--#include "include/ebtables_u.h"
--#include "include/ethernetdb.h"
- #include <stdio.h>
- #include <netinet/ether.h>
- #include <string.h>
-@@ -33,6 +31,8 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
-+#include "include/ebtables_u.h"
-+#include "include/ethernetdb.h"
- 
- const unsigned char mac_type_unicast[ETH_ALEN] =   {0,0,0,0,0,0};
- const unsigned char msk_type_unicast[ETH_ALEN] =   {1,0,0,0,0,0};
--- 
-2.12.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch
deleted file mode 100644
index c260403..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## debian_defaultconfig.dpatch by  <hesso@pool.math.tu-berlin.de>
-##
-## DP: Debian enhancements to the ebtables "sysconfig" default settings.
-
-@DPATCH@
-
---- ebtables-2.0.8.1.orig/ebtables-config
-+++ ebtables-2.0.8.1/ebtables-config
-@@ -1,17 +1,3 @@
--# Save (and possibly restore) in text format.
--#   Value: yes|no,  default: yes
--# Save the firewall rules in text format to __SYSCONFIG__/ebtables
--# If EBTABLES_BINARY_FORMAT="no" then restoring the firewall rules
--# is done using this text format.
--EBTABLES_TEXT_FORMAT="yes"
--
--# Save (and restore) in binary format.
--#   Value: yes|no,  default: yes
--# Save (and restore) the firewall rules in binary format to (and from)
--# __SYSCONFIG__/ebtables.<chain>. Enabling this option will make
--# firewall initialisation a lot faster.
--EBTABLES_BINARY_FORMAT="yes"
--
- # Unload modules on restart and stop
- #   Value: yes|no,  default: yes
- # This option has to be 'yes' to get to a sane state for a firewall
-@@ -19,6 +5,12 @@
- # modules.
- EBTABLES_MODULES_UNLOAD="yes"
- 
-+# Load firewall rules on system startup.
-+#   Value: yes|no,  default: no
-+# Restores the ebtables rulesets from the last saved state when the
-+# system boots up.
-+EBTABLES_LOAD_ON_START="no"
-+
- # Save current firewall rules on stop.
- #   Value: yes|no,  default: no
- # Saves all firewall rules if firewall gets stopped
-@@ -35,3 +27,9 @@
- # Save rule counters when saving a kernel table to a file. If the
- # rule counters were saved, they will be restored when restoring the table.
- EBTABLES_SAVE_COUNTER="no"
-+
-+# Backup suffix for ruleset save files.
-+#   Value: <string>,  default: "~"
-+# Keep one backup level of saved rules.
-+# Set this variable to the empty string to disable backups.
-+EBTABLES_BACKUP_SUFFIX="~"
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init
deleted file mode 100755
index c9a77a2..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-#
-# init script for the Ethernet Bridge filter tables
-#
-# Written by Dag Wieers <dag@wieers.com>
-# Modified by Rok Papez <rok.papez@arnes.si>
-#	     Bart De Schuymer <bdschuym@pandora.be>
-# Adapted to Debian by Jan Christoph Nordholz <hesso@pool.math.tu-berlin.de>
-# Adapted to OpenEmbedded by Roman I Khimov <khimov@altell.ru>
-#
-# chkconfig: - 15 85
-# description: Ethernet Bridge filtering tables
-#
-### BEGIN INIT INFO
-# Provides:		ebtables
-# Required-Start:	
-# Required-Stop:	
-# Should-Start:		$local_fs
-# Should-Stop:		$local_fs
-# Default-Start:	S
-# Default-Stop:		0 6
-# Short-Description:	ebtables ruleset management
-# Description:		Saves and restores the state of the ebtables rulesets.
-### END INIT INFO
-
-/usr/sbin/ebtables.common $1
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch
deleted file mode 100644
index bcd9bed..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/Makefile b/Makefile
-index c1106a4..7ea6b7a 100644
---- a/Makefile
-+++ b/Makefile
-@@ -157,31 +157,31 @@ tmp3:=$(shell printf $(PIPE) | sed 's/\//\\\//g')
- scripts: ebtables-save ebtables.sysv ebtables-config
- 	cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_
- 	mkdir -p $(DESTDIR)$(BINDIR)
--	install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
-+	install -m 0755 ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
- 	cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_
- 	if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi
--	if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi
-+	if test -d $(DESTDIR)$(INITDIR); then install -m 0755 ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi
- 	cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_
- 	if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(SYSCONFIGDIR); fi
--	if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi
-+	if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi
- 	rm -f ebtables-save_ ebtables.sysv_ ebtables-config_
- 
- tmp4:=$(shell printf $(LOCKFILE) | sed 's/\//\\\//g')
- $(MANDIR)/man8/ebtables.8: ebtables.8
- 	mkdir -p $(DESTDIR)$(@D)
- 	sed -e 's/$$(VERSION)/$(PROGVERSION)/' -e 's/$$(DATE)/$(PROGDATE)/' -e 's/$$(LOCKFILE)/$(tmp4)/' ebtables.8 > ebtables.8_
--	install -m 0644 -o root -g root ebtables.8_ $(DESTDIR)$@
-+	install -m 0644 ebtables.8_ $(DESTDIR)$@
- 	rm -f ebtables.8_
- 
- $(DESTDIR)$(ETHERTYPESFILE): ethertypes
- 	mkdir -p $(@D)
--	install -m 0644 -o root -g root $< $@
-+	install -m 0644 $< $@
- 
- .PHONY: exec
- exec: ebtables ebtables-restore
- 	mkdir -p $(DESTDIR)$(BINDIR)
--	install -m 0755 -o root -g root $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME)
--	install -m 0755 -o root -g root ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore
-+	install -m 0755 $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME)
-+	install -m 0755 ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore
- 
- .PHONY: install
- install: $(MANDIR)/man8/ebtables.8 $(DESTDIR)$(ETHERTYPESFILE) exec scripts
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch
deleted file mode 100644
index 336119d..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-link ebtables with --no-as-needed and adjust the link order to fix runtime crash
-
-Program terminated with signal 11, Segmentation fault.
-#0  0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
-(gdb) bt
-#0  0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
-#1  0x00007ffaa83824dc in do_command () from /lib64/ebtables/libebtc.so
-#2  0x000000000040065c in ?? ()
-#3  0x00007ffaa7fed755 in __libc_start_main () from /lib64/libc.so.6
-#4  0x0000000000400691 in ?? ()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: ebtables-v2.0.10-4/Makefile
-===================================================================
---- ebtables-v2.0.10-4.orig/Makefile	2011-12-15 12:02:47.000000000 -0800
-+++ ebtables-v2.0.10-4/Makefile	2012-12-17 22:09:45.065973753 -0800
-@@ -90,7 +90,7 @@
- 	$(CC) -shared $(LDFLAGS) -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2)
- 
- ebtables: $(OBJECTS) ebtables-standalone.o libebtc.so
--	$(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \
-+	$(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -Wl,--no-as-needed $(EXT_LIBSI) -lebtc \
- 	-Wl,-rpath,$(LIBDIR)
- 
- ebtablesu: ebtablesu.c
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch
new file mode 100644
index 0000000..f2dbb55
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch
@@ -0,0 +1,34 @@
+From a822e8dbca017e426a4c1c3ca835d0d03cbb4a4d Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 31 Dec 2020 16:09:56 +0800
+Subject: [PATCH] Makefile.am: do not install /etc/ethertypes
+
+The /etc/ethertypes is provided by netbase since 6.0[1].
+Do not instal the file in ebtables, otherwise there would be a conflict:
+Error: Transaction test error:
+  file /etc/ethertypes conflicts between attempted installs of netbase-1:6.2-r0.corei7_64 and ebtables-2.0.10+4-r4.corei7_64
+
+[1] https://salsa.debian.org/md/netbase/-/commit/316680c6a2c3641b6abc76b3eebf88781f609d35)
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile.am | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b879941..2237002 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -26,7 +26,6 @@ AM_CFLAGS = ${regular_CFLAGS}
+ 
+ sbin_PROGRAMS = ebtables-legacy ebtablesd ebtablesu ebtables-legacy-restore
+ EXTRA_PROGRAMS = static examples/ulog/test_ulog
+-sysconf_DATA = ethertypes
+ sbin_SCRIPTS = ebtables-legacy-save
+ man8_MANS = ebtables-legacy.8
+ lib_LTLIBRARIES = libebtc.la
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch
new file mode 100644
index 0000000..1f3fcfe3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch
@@ -0,0 +1,84 @@
+From b7cee37734007fced7a4d5ed586c3a9e5ad92878 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 26 Mar 2017 13:12:21 -0700
+Subject: [PATCH 10/10] Adjust header include sequence
+
+This fixes the build with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+---
+ extensions/ebt_among.c    | 2 +-
+ extensions/ebt_arpreply.c | 2 +-
+ extensions/ebt_nat.c      | 2 +-
+ useful_functions.c        | 4 ++--
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c
+index 30c098c..af73bd9 100644
+--- a/extensions/ebt_among.c
++++ b/extensions/ebt_among.c
+@@ -12,8 +12,8 @@
+ #include <getopt.h>
+ #include <ctype.h>
+ #include <unistd.h>
+-#include "../include/ebtables_u.h"
+ #include <netinet/ether.h>
++#include "../include/ebtables_u.h"
+ #include "../include/ethernetdb.h"
+ #include <linux/if_ether.h>
+ #include <linux/netfilter_bridge/ebt_among.h>
+diff --git a/extensions/ebt_arpreply.c b/extensions/ebt_arpreply.c
+index 399868b..7b6b5ae 100644
+--- a/extensions/ebt_arpreply.c
++++ b/extensions/ebt_arpreply.c
+@@ -11,8 +11,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <getopt.h>
+-#include "../include/ebtables_u.h"
+ #include <netinet/ether.h>
++#include "../include/ebtables_u.h"
+ #include <linux/netfilter_bridge/ebt_arpreply.h>
+
+ static int mac_supplied;
+diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
+index fe7e987..1899df3 100644
+--- a/extensions/ebt_nat.c
++++ b/extensions/ebt_nat.c
+@@ -10,8 +10,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <getopt.h>
+-#include "../include/ebtables_u.h"
+ #include <netinet/ether.h>
++#include "../include/ebtables_u.h"
+ #include <linux/netfilter_bridge/ebt_nat.h>
+
+ static int to_source_supplied, to_dest_supplied;
+diff --git a/useful_functions.c b/useful_functions.c
+index 133ae2f..c7adc66 100644
+--- a/useful_functions.c
++++ b/useful_functions.c
+@@ -22,8 +22,6 @@
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+  */
+-#include "include/ebtables_u.h"
+-#include "include/ethernetdb.h"
+ #include <errno.h>
+ #include <inttypes.h>
+ #include <limits.h>
+@@ -36,6 +34,8 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
++#include "include/ebtables_u.h"
++#include "include/ethernetdb.h"
+
+
+ const unsigned char mac_type_unicast[ETH_ALEN] =   {0,0,0,0,0,0};
+--
+2.25.1
+
+
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save
old mode 100755
new mode 100644
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save
rename to meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save
index 2d7fc4e..2133600
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save
+++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-EBTABLES="/sbin/ebtables"
+EBTABLES="/usr/sbin/ebtables-legacy"
 
 [ -x "$EBTABLES" ] || exit 1
 
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common
similarity index 60%
rename from meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common
rename to meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common
index 1ae18fe..d948422 100644
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common
+++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-[ -x /sbin/ebtables ] || exit 1
+[ -x /usr/sbin/ebtables-legacy ] || exit 1
 
 EBTABLES_DUMPFILE_STEM=/etc/ebtables/dump
 
@@ -22,13 +22,13 @@
 
 get_supported_tables() {
 	EBTABLES_SUPPORTED_TABLES=
-	/sbin/ebtables -t filter -L 2>&1 1>/dev/null | grep -q permission
+	/usr/sbin/ebtables-legacy -t filter -L 2>&1 1>/dev/null | grep -q permission
 	if [ $? -eq 0 ]; then
 		echo "Error: insufficient privileges to access the ebtables rulesets."
 		exit 1
 	fi
 	for table in filter nat broute; do
-		/sbin/ebtables -t $table -L &> /dev/null
+		/usr/sbin/ebtables-legacy -t $table -L &> /dev/null
 		if [ $? -eq 0 ]; then
 			EBTABLES_SUPPORTED_TABLES="${EBTABLES_SUPPORTED_TABLES} $table"
 		fi
@@ -42,7 +42,7 @@
 	for table in $EBTABLES_SUPPORTED_TABLES; do
 		echo -n "$table "
 		if [ -s ${EBTABLES_DUMPFILE_STEM}.$table ]; then
-			/sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit
+			/usr/sbin/ebtables-legacy -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit
 			RET=$?
 			if [ $RET -ne 0 ]; then
 				echo -n "(failed) "
@@ -70,7 +70,7 @@
 	echo -n "Clearing ebtables rulesets: "
 	for table in $EBTABLES_SUPPORTED_TABLES; do
 		echo -n "$table "
-		/sbin/ebtables -t $table --init-table
+		/usr/sbin/ebtables-legacy -t $table --init-table
 	done
 
 	if [ "$EBTABLES_MODULES_UNLOAD" = "yes" ]; then
@@ -97,15 +97,15 @@
 	for table in $EBTABLES_SUPPORTED_TABLES; do
 		echo -n "$table "
 		[ -n "$EBTABLES_BACKUP_SUFFIX" ] && [ -s ${EBTABLES_DUMPFILE_STEM}.$table ] && \
-		  mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX
-		/sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save
+			mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX
+		/usr/sbin/ebtables-legacy -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save
 		RET=$?
 		if [ $RET -ne 0 ]; then
 			echo -n "(failed) "
 			RETVAL=$RET
 		else
 			if [ "$EBTABLES_SAVE_COUNTER" = "no" ]; then
-				/sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z
+				/usr/sbin/ebtables-legacy -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z
 			fi
 		fi
 	done
@@ -122,42 +122,42 @@
 }
 
 case "$1" in
-  start)
-	[ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
-	;;
-  stop)
-	[ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save
-	clear_rules
-	;;
-  restart|reload|force-reload)
-	[ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save
-	clear_rules
-	[ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
-	;;
-  load)
-	load
-	;;
-  save)
-	save
-	;;
-  status)
-	get_supported_tables
-	if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
-		echo "No kernel support for ebtables."
+	start)
+		[ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
+		;;
+	stop)
+		[ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save
+		clear_rules
+		;;
+	restart|reload|force-reload)
+		[ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save
+		clear_rules
+		[ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
+		;;
+	load)
+		load
+		;;
+	save)
+		save
+		;;
+	status)
+		get_supported_tables
+		if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
+			echo "No kernel support for ebtables."
+			RETVAL=1
+		else
+			echo -n "Ebtables support available, number of installed rules: "
+			for table in $EBTABLES_SUPPORTED_TABLES; do
+				COUNT=$(( $(/usr/sbin/ebtables-legacy -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 ))
+				echo -n "$table($COUNT) "
+			done
+			echo ok
+			RETVAL=0
+		fi
+		;;
+	*)
+		echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2
 		RETVAL=1
-	else
-		echo -n "Ebtables support available, number of installed rules: "
-		for table in $EBTABLES_SUPPORTED_TABLES; do
-			COUNT=$(( $(/sbin/ebtables -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 ))
-			echo -n "$table($COUNT) "
-		done
-		echo ok
-		RETVAL=0
-	fi
-	;;
-  *)
-	echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2
-	RETVAL=1
 esac
 
 exit $RETVAL
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.service
similarity index 100%
rename from meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service
rename to meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.service
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
deleted file mode 100644
index 2767840..0000000
--- a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "Filtering tool for a Linux-based bridging firewall"
-HOMEPAGE = "http://sourceforge.net/projects/ebtables/"
-DESCRIPTION = "Utility for basic Ethernet frame filtering on a Linux bridge, \
-               advanced logging, MAC DNAT/SNAT and brouting."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=53b4a999993871a28ab1488fdbd2e73e"
-SECTION = "net"
-PR = "r4"
-
-RDEPENDS_${PN} += "bash"
-
-RRECOMMENDS_${PN} += "kernel-module-ebtables \
-    "
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ebtables/files/ebtables/"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \
-           file://ebtables-save \
-           file://installnonroot.patch \
-           file://01debian_defaultconfig.patch \
-           file://ebtables.init \
-           file://ebtables.common \
-           file://ebtables.service \
-           file://no-as-needed.patch \
-           file://0001-add-RARP-and-update-iana-url.patch \
-           file://0002-fix-compilation-warning.patch \
-           file://0003-add-info-about-Wl-no-as-needed.patch \
-           file://0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch \
-           file://0005-Add-noflush-command-line-support-for-ebtables-restor.patch \
-           file://0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch \
-           file://0007-extensions-Use-stdint-types.patch \
-           file://0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch \
-           file://0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch \
-           "
-
-SRC_URI_append_libc-musl = " file://0010-Adjust-header-include-sequence.patch"
-
-SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0"
-SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9a4455d"
-
-# It is using '-' but not '.' as delimiter for the version in the releases page,
-# which causes the version comparison unmatched.
-#UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ebtables/files/ebtables/"
-#UPSTREAM_CHECK_REGEX = "ebtables-(?P<pver>\d+(\-\d+)+)"
-
-RECIPE_UPSTREAM_VERSION = "2.0.10-4"
-RECIPE_UPSTREAM_DATE = "Dec 15, 2011"
-CHECK_DATE = "May 25, 2018"
-
-S = "${WORKDIR}/ebtables-v${PV}"
-
-inherit update-rc.d systemd
-
-python __anonymous () {
-    import re
-
-    karch = d.getVar('TARGET_ARCH')
-    multilib = d.getVar('MLPREFIX')
-
-    if multilib and ( karch == 'powerpc64' or karch == 'arm' ):
-        searchstr = "lib.?32"
-        reg = re.compile(searchstr)
-        if reg.search(multilib):
-            d.appendVar('CFLAGS' ,' -DKERNEL_64_USERSPACE_32 -DEBT_MIN_ALIGN=8')
-}
-
-EXTRA_OEMAKE = " \
-        BINDIR=${base_sbindir} \
-        MANDIR=${mandir} \
-        ETHERTYPESPATH=${sysconfdir} \
-        INITDIR=${sysconfdir}/init.d \
-        SYSCONFIGDIR=${sysconfdir}/default \
-        LIBDIR=${base_libdir}/ebtables \
-        'CC=${CC}' \
-        'CFLAGS=${CFLAGS}' \
-        'LDFLAGS=${LDFLAGS} -Wl,--no-as-needed' \
-        'LD=${LD}' \
-"
-
-do_install () {
-    install -d ${D}${sbindir}
-    install -m 0755 ${WORKDIR}/ebtables.common ${D}${sbindir}/ebtables.common
-    # Fix hardcoded paths in scripts
-    sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${sbindir}/ebtables.common
-    sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sbindir}/ebtables.common
-
-    install -d ${D}${sysconfdir}/init.d
-    install -d ${D}${sysconfdir}/default
-    install -d ${D}${sysconfdir}/ebtables
-    oe_runmake DESTDIR='${D}' install
-    install -m 0755 ${WORKDIR}/ebtables.init ${D}/${sysconfdir}/init.d/ebtables
-    mv ${D}${sysconfdir}/default/ebtables-config ${D}${sysconfdir}/default/ebtables
-    sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ebtables
-
-    # Replace upstream ebtables-save perl script with Fedora bash based rewrite
-    # http://pkgs.fedoraproject.org/cgit/rpms/ebtables.git/tree/ebtables-save
-    install -m 0755 ${WORKDIR}/ebtables-save ${D}${base_sbindir}/ebtables-save
-    sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${base_sbindir}/ebtables-save
-
-    # Install systemd service files
-    install -d ${D}${systemd_unitdir}/system
-    install -m 0644 ${WORKDIR}/ebtables.service ${D}${systemd_unitdir}/system
-    sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/ebtables.service
-}
-
-CONFFILES_${PN} += "${sysconfdir}/default/ebtables"
-
-INITSCRIPT_NAME = "ebtables"
-INITSCRIPT_PARAMS = "start 41 S . stop 41 6 ."
-
-SYSTEMD_SERVICE_${PN} = "ebtables.service"
-
-FILES_${PN}-dbg += "${base_libdir}/ebtables/.debug"
-FILES_${PN} += "${base_libdir}/ebtables/*.so"
diff --git a/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb
new file mode 100644
index 0000000..bc33c18
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Filtering tool for a Linux-based bridging firewall"
+HOMEPAGE = "http://sourceforge.net/projects/ebtables/"
+DESCRIPTION = "Utility for basic Ethernet frame filtering on a Linux bridge, \
+               advanced logging, MAC DNAT/SNAT and brouting."
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=53b4a999993871a28ab1488fdbd2e73e"
+SECTION = "net"
+
+RDEPENDS_${PN} += "bash perl"
+
+RRECOMMENDS_${PN} += "kernel-module-ebtables \
+    "
+
+SRC_URI = "http://ftp.netfilter.org/pub/ebtables/ebtables-${PV}.tar.gz \
+           file://0001-Makefile.am-do-not-install-etc-ethertypes.patch \
+           file://ebtables-legacy-save \
+           file://ebtables.common \
+           file://ebtables.service \
+           "
+
+SRC_URI_append_libc-musl = " file://0010-Adjust-header-include-sequence.patch"
+
+SRC_URI[md5sum] = "071c8b0a59241667a0044fb040d4fc72"
+SRC_URI[sha256sum] = "b71f654784a726329f88b412ef7b96b4e5d786ed2bd28193ed7b4c0d677dfd2a"
+
+inherit systemd autotools
+
+do_install_append () {
+	# Replace upstream ebtables-save perl script with Fedora bash based rewrite
+	# http://pkgs.fedoraproject.org/cgit/rpms/ebtables.git/tree/ebtables-save
+	rm -f ${D}${sbindir}/ebtables-legacy-save
+	install -m 0755 ${WORKDIR}/ebtables-legacy-save ${D}${sbindir}/ebtables-legacy-save
+
+	# Install systemd service files
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		install -d ${D}${systemd_unitdir}/system
+		install -m 0644 ${WORKDIR}/ebtables.service ${D}${systemd_unitdir}/system
+		sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/ebtables.service
+		install -m 0755 ${WORKDIR}/ebtables.common ${D}${sbindir}/ebtables.common
+	fi
+
+	install -d ${D}${base_sbindir}
+	ln -sf ${sbindir}/ebtables-legacy ${D}${base_sbindir}/ebtables
+}
+
+do_configure_prepend () {
+    ( cd ${S}; ./autogen.sh )
+}
+
+FILES_${PN}-dbg += "${base_libdir}/ebtables/.debug"
+FILES_${PN} += "${base_libdir}/ebtables/*.so"
+
+SYSTEMD_SERVICE_${PN} = "ebtables.service"
diff --git a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb
rename to meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.bb
index 1c87c48..3692323 100644
--- a/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb
+++ b/meta-openembedded/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.bb
@@ -5,7 +5,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=f9d20a453221a1b7e32ae84694da2c37"
 
-SRCREV = "42c1aefc303fdf891fbb099ea51f00dca83ab606"
+SRCREV = "ab8a2cc330253321be7bc69dea88bfaa3d48415e"
 
 SRC_URI = "\
     git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git \
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/0001-waf-add-support-of-cross_compile.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/0001-waf-add-support-of-cross_compile.patch
deleted file mode 100644
index e58339a..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/0001-waf-add-support-of-cross_compile.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-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, waf also upgraded
-
-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 new version, 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/libtalloc/libtalloc/avoid-attr-unless-wanted.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
index db3ddce..5b7f69e 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
@@ -1,6 +1,6 @@
---- a/lib/replace/wscript	2015-11-13 16:04:04.000000000 +0100
-+++ b/lib/replace/wscript	2015-11-13 16:23:20.000000000 +0100
-@@ -837,8 +837,6 @@ def build(bld):
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -947,8 +947,6 @@ def build(bld):
      if not bld.CONFIG_SET('HAVE_INET_ATON'):     REPLACE_SOURCE += ' inet_aton.c'
      if not bld.CONFIG_SET('HAVE_INET_NTOP'):     REPLACE_SOURCE += ' inet_ntop.c'
      if not bld.CONFIG_SET('HAVE_INET_PTON'):     REPLACE_SOURCE += ' inet_pton.c'
@@ -9,12 +9,13 @@
  
      if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
          REPLACE_SOURCE += ' closefrom.c'
-@@ -852,7 +850,7 @@ def build(bld):
+@@ -962,7 +960,7 @@ def build(bld):
                        # at the moment:
                        # hide_symbols=bld.BUILTIN_LIBRARY('replace'),
                        private_library=True,
--                      deps='crypt dl nsl socket rt attr' + extra_libs)
-+                      deps='crypt dl nsl socket rt ' + extra_libs)
+-                      deps='dl attr' + extra_libs)
++                      deps='dl' + extra_libs)
  
-     replace_test_cflags="-Wno-format-zero-length"
+     replace_test_cflags = ''
      if bld.CONFIG_SET('HAVE_WNO_FORMAT_TRUNCATION'):
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch
index 3847b01..46fef10 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch
@@ -1,6 +1,6 @@
-From c6d76c8ade57b996a8123b1c1a3a28ba4666e9c6 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 20 Jun 2019 10:57:06 +0800
+From 8a82056ba2f70137714f225d82993aa4b11042da Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 14:14:08 +0900
 Subject: [PATCH] talloc: Add configure options for packages
 
 Add configure options for the following packages:
@@ -22,12 +22,12 @@
 Modified tp apply to version 2.2.0
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- lib/replace/wscript | 91 ++++++++++++++++++++++++++++++++++++++++-------------
- wscript             |  7 ++++-
- 2 files changed, 76 insertions(+), 22 deletions(-)
+ lib/replace/wscript | 89 +++++++++++++++++++++++++++++++++++----------
+ wscript             |  7 +++-
+ 2 files changed, 75 insertions(+), 21 deletions(-)
 
 diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 1d01e1e..7bc7666 100644
+index a2bc604..2e2e7bf 100644
 --- a/lib/replace/wscript
 +++ b/lib/replace/wscript
 @@ -25,6 +25,41 @@ def options(opt):
@@ -81,10 +81,9 @@
 +    conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
 +    conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h')
      conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
--    conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
+     conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
 -    conf.CHECK_HEADERS('shadow.h sys/acl.h')
 -    conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+    conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
 +    conf.CHECK_HEADERS('shadow.h')
 +    conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
 +
@@ -103,7 +102,7 @@
      conf.CHECK_HEADERS('port.h')
      conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.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')
-@@ -110,8 +158,9 @@ def configure(conf):
+@@ -121,8 +169,9 @@ 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')
  
@@ -115,7 +114,7 @@
      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')
-@@ -380,20 +429,20 @@ def configure(conf):
+@@ -418,20 +467,20 @@ def configure(conf):
  
      strlcpy_in_bsd = False
  
@@ -151,7 +150,7 @@
      conf.CHECK_CODE('''
                  struct ucred cred;
 diff --git a/wscript b/wscript
-index e402069..9976f4c 100644
+index b955d21..4ac6e1e 100644
 --- a/wscript
 +++ b/wscript
 @@ -31,7 +31,12 @@ def options(opt):
@@ -169,5 +168,5 @@
  def configure(conf):
      conf.RECURSE('lib/replace')
 -- 
-2.7.4
+2.25.1
 
diff --git a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.0.bb b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.1.bb
similarity index 90%
rename from meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.0.bb
rename to meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.1.bb
index 59deb15..07d54b7 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.3.1.bb
@@ -8,10 +8,9 @@
 
 SRC_URI = "https://www.samba.org/ftp/talloc/talloc-${PV}.tar.gz \
            file://options-2.2.0.patch \
-           file://0001-waf-add-support-of-cross_compile.patch \
 "
-SRC_URI[md5sum] = "8416b153547add81cd1a4d24e598c890"
-SRC_URI[sha256sum] = "75d5bcb34482545a82ffb06da8f6c797f963a0da450d0830c669267b14992fc6"
+SRC_URI[md5sum] = "ce40593428c0de6b85946189dcc37b5e"
+SRC_URI[sha256sum] = "ef4822d2fdafd2be8e0cabc3ec3c806ae29b8268e932c5e9a4cd5585f37f9f77"
 
 inherit waf-samba
 
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-waf-add-support-of-cross_compile.patch b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-waf-add-support-of-cross_compile.patch
deleted file mode 100644
index a717f1b..0000000
--- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/0001-waf-add-support-of-cross_compile.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-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, waf also upgraded.
-
-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 new version, 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/libtevent/libtevent/avoid-attr-unless-wanted.patch b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch
index 3589033..b71192b 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch
@@ -1,8 +1,17 @@
+From 6c4a634cdf70147f773bb1806692c78bbb95c6f2 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 15:10:58 +0900
+Subject: [PATCH] test
+
+---
+ lib/replace/wscript | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
 diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 079761d..07e0104 100644
+index e4642e8..163e94d 100644
 --- a/lib/replace/wscript
 +++ b/lib/replace/wscript
-@@ -793,8 +793,6 @@ def build(bld):
+@@ -945,8 +945,6 @@ def build(bld):
      if not bld.CONFIG_SET('HAVE_INET_ATON'):     REPLACE_SOURCE += ' inet_aton.c'
      if not bld.CONFIG_SET('HAVE_INET_NTOP'):     REPLACE_SOURCE += ' inet_ntop.c'
      if not bld.CONFIG_SET('HAVE_INET_PTON'):     REPLACE_SOURCE += ' inet_pton.c'
@@ -11,12 +20,15 @@
  
      if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
          REPLACE_SOURCE += ' closefrom.c'
-@@ -808,7 +806,7 @@ def build(bld):
+@@ -960,7 +958,7 @@ def build(bld):
                        # at the moment:
                        # hide_symbols=bld.BUILTIN_LIBRARY('replace'),
                        private_library=True,
--                      deps='crypt dl nsl socket rt attr' + extra_libs)
-+                      deps='crypt dl nsl socket rt ' + extra_libs)
+-                      deps='dl attr' + extra_libs)
++                      deps='dl' + extra_libs)
  
-     replace_test_cflags="-Wno-format-zero-length"
+     replace_test_cflags = ''
      if bld.CONFIG_SET('HAVE_WNO_FORMAT_TRUNCATION'):
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch
index 882af06..42da246 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch
@@ -1,6 +1,6 @@
-From b2b19aa9968258b22cf31db0b9dba6bcf96046cf Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 20 Jun 2019 13:55:44 +0800
+From c012aa03613e6e74a0598185b222c7b531df1e2d Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 15:03:17 +0900
 Subject: [PATCH] Add configure options for packages
 
 Add configure options for the following packages:
@@ -22,12 +22,12 @@
 Update patch to version 0.10.0
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- lib/replace/wscript | 89 ++++++++++++++++++++++++++++++++++++++++-------------
+ lib/replace/wscript | 87 ++++++++++++++++++++++++++++++++++-----------
  wscript             |  6 ++++
- 2 files changed, 74 insertions(+), 21 deletions(-)
+ 2 files changed, 73 insertions(+), 20 deletions(-)
 
 diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 1d01e1e..5cf444a 100644
+index a2bc604..e4642e8 100644
 --- a/lib/replace/wscript
 +++ b/lib/replace/wscript
 @@ -25,6 +25,41 @@ def options(opt):
@@ -81,13 +81,12 @@
 +    conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
 +    conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
      conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
--    conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
+     conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
 -    conf.CHECK_HEADERS('shadow.h sys/acl.h')
 -    conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+    conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
 +    conf.CHECK_HEADERS('shadow.h')
 +    conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
-+
++    
 +    if Options.options.enable_acl:
 +        conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
 +
@@ -103,7 +102,7 @@
      conf.CHECK_HEADERS('port.h')
      conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.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')
-@@ -110,8 +158,9 @@ def configure(conf):
+@@ -121,8 +169,9 @@ 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')
  
@@ -115,7 +114,7 @@
      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')
-@@ -380,20 +429,18 @@ def configure(conf):
+@@ -418,20 +467,18 @@ def configure(conf):
  
      strlcpy_in_bsd = False
  
@@ -149,7 +148,7 @@
      conf.CHECK_CODE('''
                  struct ucred cred;
 diff --git a/wscript b/wscript
-index ded182a..824a6dd 100644
+index 93af416..a0898b1 100644
 --- a/wscript
 +++ b/wscript
 @@ -25,6 +25,12 @@ def options(opt):
@@ -166,5 +165,5 @@
  def configure(conf):
      conf.RECURSE('lib/replace')
 -- 
-2.7.4
+2.25.1
 
diff --git a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.1.bb b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
similarity index 90%
rename from meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.1.bb
rename to meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
index f1b170d..21f83ad 100644
--- a/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
@@ -9,12 +9,11 @@
 SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
            file://options-0.10.0.patch \
            file://0001-libtevent-fix-musl-libc-compile-error.patch \
-           file://0001-waf-add-support-of-cross_compile.patch \
 "
 LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a"
 
-SRC_URI[md5sum] = "1060eb69d6994a847eecb73c4d391ced"
-SRC_URI[sha256sum] = "79a4da68b38b86ac71d8ac824ee3605ab22a6a91cfa83033a7db73f3dd6910b6"
+SRC_URI[md5sum] = "105c7a4dbb96f1751eb27dfd05e7fa84"
+SRC_URI[sha256sum] = "f8427822e5b2878fb8b28d6f50d96848734f3f3130612fb574fdd2d2148a6696"
 
 inherit waf-samba
 
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.29.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.30.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.29.bb
rename to meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.30.bb
index 6918485..4929c4f 100644
--- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.29.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.30.bb
@@ -35,8 +35,8 @@
 
 S = "${WORKDIR}/OpenIPMI-${PV}"
 
-SRC_URI[md5sum] = "46b452e95d69c92e4172b3673ed88d52"
-SRC_URI[sha256sum] = "2244124579afb14e569f34393e9ac61e658a28b6ffa8e5c0d2c1c12a8ce695cd"
+SRC_URI[md5sum] = "8d35f68058ca5359973b4121e1544d31"
+SRC_URI[sha256sum] = "237a9be2a30bde85a88c4ec2759b54eb5b21fede554ffabf8fef1ffac2b42ade"
 
 inherit autotools-brokensep pkgconfig python3native perlnative update-rc.d systemd cpan-base python3targetconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_32.0.bb b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_33.0.bb
similarity index 85%
rename from meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_32.0.bb
rename to meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_33.0.bb
index 7772120..1c1569c 100644
--- a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_32.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_33.0.bb
@@ -5,10 +5,8 @@
 DEPENDS = "libnl"
 RDEPENDS_${PN} = "bash perl"
 
-BRANCH = "stable-v${@d.getVar('PV').split('.')[0]}"
-SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=${BRANCH} \
-           "
-SRCREV = "7a4f9ad9a1d906c5f2bbb18b588309c3d12460ac"
+SRC_URI = "git://github.com/linux-rdma/rdma-core.git"
+SRCREV = "e66ca0832e58dafac7af7ad9e6799eaef438061a"
 S = "${WORKDIR}/git"
 
 #Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb
index 8f7bd59..afcb4d5 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.3.bb
@@ -23,6 +23,8 @@
 SRC_URI[md5sum] = "a4ead41d371f91aa0a2287f589958bae"
 SRC_URI[sha256sum] = "2cd47cb3d460b6ff75f4a9940f594317ad456cfbf2bd2c8e5151e16559db6410"
 
+UPSTREAM_CHECK_REGEX = "tcpdump-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
+
 inherit autotools-brokensep ptest
 
 PACKAGECONFIG ?= "openssl"
diff --git a/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb b/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb
index 9937944..c673ed0 100644
--- a/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb
@@ -40,6 +40,6 @@
 
 }
 
-ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_PRIORITY = "100"
 ALTERNATIVE_${PN} = "traceroute"
 ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute"
