diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch
deleted file mode 100644
index dbc48a2..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio/0001-filter-Rename-some-variables-to-tr_stdxxx.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 601e6e56f44b91d957bb643662455f52540f336a Mon Sep 17 00:00:00 2001
-From: Corey Minyard <cminyard@mvista.com>
-Date: Tue, 25 Feb 2020 16:08:40 -0600
-Subject: [PATCH] filter: Rename some variables to tr_stdxxx
-
-stdout and stderr can be macros, don't use the names directly.
-
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-Upstream-Status: Backport [https://github.com/cminyard/gensio/commit/601e6e56f44b91d957bb643662455f52540f336a]
-Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
----
- lib/gensio_filter_trace.c | 28 ++++++++++++++--------------
- 1 file changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/lib/gensio_filter_trace.c b/lib/gensio_filter_trace.c
-index d39d58b..abe2db6 100644
---- a/lib/gensio_filter_trace.c
-+++ b/lib/gensio_filter_trace.c
-@@ -32,8 +32,8 @@ struct trace_filter {
-     enum trace_dir dir;
-     bool raw;
-     char *filename;
--    bool stdout;
--    bool stderr;
-+    bool tr_stdout;
-+    bool tr_stderr;
- 
-     FILE *tr;
- };
-@@ -82,9 +82,9 @@ trace_try_connect(struct gensio_filter *filter, struct timeval *timeout)
- {
-     struct trace_filter *tfilter = filter_to_trace(filter);
- 
--    if (tfilter->stdout) {
-+    if (tfilter->tr_stdout) {
- 	tfilter->tr = stdout;
--    } else if (tfilter->stderr) {
-+    } else if (tfilter->tr_stderr) {
- 	tfilter->tr = stderr;
-     } else if (tfilter->filename) {
- 	tfilter->tr = fopen(tfilter->filename, "a+");
-@@ -99,7 +99,7 @@ trace_try_disconnect(struct gensio_filter *filter, struct timeval *timeout)
- {
-     struct trace_filter *tfilter = filter_to_trace(filter);
- 
--    if (!tfilter->stdout && !tfilter->stderr && tfilter->tr)
-+    if (!tfilter->tr_stdout && !tfilter->tr_stderr && tfilter->tr)
- 	fclose(tfilter->tr);
-     tfilter->tr = NULL;
-     return 0;
-@@ -331,12 +331,12 @@ static int gensio_trace_filter_func(struct gensio_filter *filter, int op,
- 
- static struct gensio_filter *
- gensio_trace_filter_raw_alloc(struct gensio_os_funcs *o, enum trace_dir dir,
--			      bool raw, const char *filename, bool stdout,
--			      bool stderr)
-+			      bool raw, const char *filename, bool tr_stdout,
-+			      bool tr_stderr)
- {
-     struct trace_filter *tfilter;
- 
--    if (!filename && !stdout && !stderr)
-+    if (!filename && !tr_stdout && !tr_stderr)
- 	dir = TRACE_NONE;
- 
-     tfilter = o->zalloc(o, sizeof(*tfilter));
-@@ -351,8 +351,8 @@ gensio_trace_filter_raw_alloc(struct gensio_os_funcs *o, enum trace_dir dir,
- 	if (!tfilter->filename)
- 	    goto out_nomem;
-     }
--    tfilter->stdout = stdout;
--    tfilter->stderr = stderr;
-+    tfilter->tr_stdout = tr_stdout;
-+    tfilter->tr_stderr = tr_stderr;
- 
-     tfilter->lock = o->alloc_lock(o);
-     if (!tfilter->lock)
-@@ -385,7 +385,7 @@ gensio_trace_filter_alloc(struct gensio_os_funcs *o,
- {
-     struct gensio_filter *filter;
-     int dir = TRACE_NONE;
--    bool raw = false, stdout = false, stderr = false;
-+    bool raw = false, tr_stdout = false, tr_stderr = false;
-     const char *filename = NULL;
-     unsigned int i;
- 
-@@ -396,15 +396,15 @@ gensio_trace_filter_alloc(struct gensio_os_funcs *o,
- 	    continue;
- 	if (gensio_check_keyvalue(args[i], "file", &filename) > 0)
- 	    continue;
--	if (gensio_check_keybool(args[i], "stdout", &stdout) > 0)
-+	if (gensio_check_keybool(args[i], "stdout", &tr_stdout) > 0)
- 	    continue;
--	if (gensio_check_keybool(args[i], "stderr", &stderr) > 0)
-+	if (gensio_check_keybool(args[i], "stderr", &tr_stderr) > 0)
- 	    continue;
- 	return GE_INVAL;
-     }
- 
-     filter = gensio_trace_filter_raw_alloc(o, dir, raw, filename,
--					   stdout, stderr);
-+					   tr_stdout, tr_stderr);
-     if (!filter)
- 	return GE_NOMEM;
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.1.4.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.1.4.bb
index 8c97662..9d73da9 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_1.5.3.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.1.4.bb
@@ -5,11 +5,9 @@
                     file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f \
                     "
 
-SRCREV = "95ec1ab31ee97411fc37156d12061adcf0331598"
-PV = "1.5.3+git${SRCPV}"
+SRCREV = "998a017076a86179696a3ad811e2bae9155e46cb"
 
 SRC_URI = "git://github.com/cminyard/gensio;protocol=https \
-           file://0001-filter-Rename-some-variables-to-tr_stdxxx.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch b/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch
new file mode 100644
index 0000000..77de9e6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch
@@ -0,0 +1,31 @@
+From b990146a149e1729c12e4541a67e32ed1dd6e578 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 19:41:08 -0700
+Subject: [PATCH] src/interface.h: Make declarations as extern
+
+Fixed build with -fno-common
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/interface.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/interface.h b/src/interface.h
+index d223b1f..fd4a5f4 100644
+--- a/src/interface.h
++++ b/src/interface.h
+@@ -21,8 +21,8 @@
+  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+  */
+ 
+-int interface_auto_up;
+-int interface_do_message;
++extern int interface_auto_up;
++extern int interface_do_message;
+ 
+ typedef enum { IFSTATUS_UP, IFSTATUS_DOWN, IFSTATUS_ERR } interface_status_t;
+ 
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb b/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb
index 0b5c5a6..7dc83e8 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb
@@ -6,7 +6,9 @@
 
 DEPENDS = "libdaemon"
 
-SRC_URI = "http://0pointer.de/lennart/projects/ifplugd/ifplugd-${PV}.tar.gz"
+SRC_URI = "http://0pointer.de/lennart/projects/ifplugd/ifplugd-${PV}.tar.gz \
+           file://0001-src-interface.h-Make-declarations-as-extern.patch \
+          "
 
 SRC_URI_append_libc-musl = " file://Fix-build-with-musl.patch"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.7.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.8.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.7.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.8.bb
index 4911b3d..b1e6fea 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.7.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_1.8.bb
@@ -6,7 +6,7 @@
 DEPENDS = "ell"
 
 SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git"
-SRCREV = "ef6084dcb4fe2e00327bb9c7b113ece204042c22"
+SRCREV = "a01754f56aacdc641c819f983c3c0ad374be77b2"
 S = "${WORKDIR}/git"
 
 inherit autotools manpages pkgconfig python3native systemd
@@ -41,7 +41,7 @@
 
 FILES_${PN} += " \
     ${datadir}/dbus-1 \
-    ${nonarch_libdir}/modules-load.d \
+    ${nonarch_base_libdir}/modules-load.d \
     ${systemd_unitdir}/network \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch
deleted file mode 100644
index 679a8b5..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Fix configure error in large file checks on 64-bit architectures
-
- configure:17888: checking for native large file support
- configure:17891: error: in `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/core2-64-oe-linux/libimobiledevice/1.1.4-r0/libimobiledevice-1.1.4':
- configure:17893: error: cannot run test program while cross compiling
-
-configure.ac was using AC_SYS_LARGEFILE macro as is typical, but then
-there was an extra runtime check added beyond that:
-check if off_t is 8 bytes (64 bits) long.
-If that runtime check passed, _FILE_OFFSET_BITS was defined as 64.
-
-Runtime checks need to go away for cross compiling, and luckily this extra
-check was not serving any useful purpose. Note that off_t was *already*
-64 bits, *without* setting _FILE_OFFSET_BITS, which makes _FILE_OFFSET_BITS
-unneeded for large file support. 
-
-If AC_SYS_LARGEFILE macro sets ac_cv_sys_file_offset_bits=no,
-just leave _FILE_OFFSET_BITS undefined!
-
---- libimobiledevice-1.1.4/configure.ac.old	2015-07-15 01:38:50.900143927 -0700
-+++ libimobiledevice-1.1.4/configure.ac	2015-07-15 01:39:13.300144430 -0700
-@@ -174,16 +174,6 @@
- if test "$enable_largefile" != no; then
-     if test "$ac_cv_sys_file_offset_bits" != 'no'; then
- 	LFS_CFLAGS="$LFS_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
--    else
--	AC_MSG_CHECKING(for native large file support)
--	AC_RUN_IFELSE([AC_LANG_SOURCE([#include <unistd.h>
--	  int main (int argc, char **argv)
--	  {
--	      exit(!(sizeof(off_t) == 8));
--	  }])],
--	[ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
--	 AC_MSG_RESULT(yes)],
--	[AC_MSG_RESULT(no)])
-     fi
-     if test "$ac_cv_sys_large_files" != 'no'; then
- 	LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES=1"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
similarity index 61%
rename from meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
index 908b98d..bcedd62 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
@@ -4,17 +4,12 @@
     file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
     file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \
 "
-
-HOMEPAGE ="http://www.libimobiledevice.org/"
+HOMEPAGE = "http://www.libimobiledevice.org/"
 
 DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt"
 
-SRCREV = "fb71aeef10488ed7b0e60a1c8a553193301428c0"
-PV = "1.2.0+git${SRCPV}"
-SRC_URI = "\
-    git://github.com/libimobiledevice/libimobiledevice;protocol=https \
-    file://configure-fix-largefile.patch \
-"
+SRCREV = "15f8652126664e3a4b980e5d1c039b9053ce8566"
+SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https"
 
 S = "${WORKDIR}/git"
 inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.24.2.bb
similarity index 73%
rename from meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.24.2.bb
index 61e314f..c7a04b6 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.22.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.24.2.bb
@@ -9,9 +9,9 @@
 
 DEPENDS = "glib-2.0 glib-2.0-native libgudev"
 
-inherit autotools pkgconfig bash-completion
+inherit autotools pkgconfig bash-completion gobject-introspection
 
 SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
 
-SRC_URI[md5sum] = "87060e8957013177e4140edc6f64f5bd"
-SRC_URI[sha256sum] = "5c0778eb1cd12c3604523134e55183f5147b0cae71150e875b583768f7aa1f38"
+SRC_URI[md5sum] = "6c2b490af87773c8446f37536e7411ac"
+SRC_URI[sha256sum] = "32198c099987849c5f442d1cbf4b6e43e645cbdbe9cfdc197b19ddd63c6981e4"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.12.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.0.bb
similarity index 63%
rename from meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.12.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.0.bb
index 6f86385..3a1b70b 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.24.12.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.26.0.bb
@@ -1,5 +1,6 @@
 SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
-DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol"
+DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and \
+               devices which speak the Qualcomm MSM Interface (QMI) protocol"
 HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
 LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = " \
@@ -9,16 +10,13 @@
 
 DEPENDS = "glib-2.0 glib-2.0-native"
 
-inherit autotools pkgconfig bash-completion
+inherit autotools pkgconfig bash-completion gobject-introspection
 
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
-           "
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
 
-SRC_URI[md5sum] = "7e6e49fddb9ae2b6fcde14619d6cfe49"
-SRC_URI[sha256sum] = "2d3b91a2b8a882b17b16403c9ef7bdce522db4f0ceaa3e4dff76033885428b69"
+SRC_URI[md5sum] = "8da95a97e893311878f8ce12dcf8fad0"
+SRC_URI[sha256sum] = "7f0429e0ae58792e21512d09ca2412537840ea42696762795af1284a65fd6e40"
 
 PACKAGECONFIG ??= "udev mbim"
 PACKAGECONFIG[udev] = ",--without-udev,libgudev"
 PACKAGECONFIG[mbim] = "--enable-mbim-qmux,--disable-mbim-qmux,libmbim"
-
-EXTRA_OECONF_append_toolchain-clang = " --enable-more-warnings=no"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.20.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.1.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.20.bb
index 0d1f57a..5427daa 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.0.20.bb
@@ -6,7 +6,7 @@
 DEPENDS = "zlib"
 
 S = "${WORKDIR}/git"
-SRCREV = "6eb39388f43f6e2a27f0efcbf8cb2391e38824e9"
+SRCREV = "ec9e8ab892f2dc569ae09336c80c2796fd14a6ff"
 SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.0-stable"
 
 UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
index b1d96ae..55ce4c9 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
+++ b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
@@ -22,8 +22,8 @@
 +CC	?= $(CROSS_COMPILE)gcc
  VER     = -DVER=$(version)
  CFLAGS	= -Wall $(VER) $(incdefs) $(DEBUG) $(EXTRA_CFLAGS)
- LDLIBS	= -lm -lrt $(EXTRA_LDFLAGS)
-@@ -35,7 +35,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh)
+ LDLIBS	= -lm -lrt -pthread $(EXTRA_LDFLAGS)
+@@ -43,7 +43,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh)
  version := $(shell $(srcdir)/version.sh $(srcdir))
  VPATH	= $(srcdir)
  
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch
deleted file mode 100644
index af99d2b..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/time_t_maybe_long_long.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-Fix printf if time_t is long long
-
-On some platforms, time_t has recently switched from "long" to "long
-long" [1]. For these platforms it is necessary to use "%lld" as printf
-format specifier because the ABI differs between "long" and "long long".
-
-I found no way for creating something similar to PRId64 for time_t. No
-idea how to determine whether it's "long" or "long long". So I cast
-everything to "long long" instead.
-
-[1] https://git.musl-libc.org/cgit/musl/commit/?id=38143339646a4ccce8afe298c34467767c899f51
-
-Upstream-Status: Accepted [next version is after 2.0]
-Upstream-Patch: https://github.com/richardcochran/linuxptp/commit/7de73fefc378cc42b9ed1115b3afa409d0250a48
-
-Signed-off-by: Christian Eggers <ceggers@arri.de>
----
-diff -Naur linuxptp-2.0.org/phc_ctl.c linuxptp-2.0/phc_ctl.c
---- linuxptp-2.0.org/phc_ctl.c	2018-08-12 23:08:43.000000000 +0200
-+++ linuxptp-2.0/phc_ctl.c	2020-05-29 21:34:26.166519963 +0200
-@@ -230,8 +230,8 @@
- 			strerror(errno));
- 		return -1;
- 	} else {
--		pr_notice("set clock time to %ld.%09ld or %s",
--			ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
-+		pr_notice("set clock time to %lld.%09ld or %s",
-+			(long long)ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
- 	}
- 
- 	return args_to_eat;
-@@ -248,8 +248,8 @@
- 
- 		return -1;
- 	} else {
--		pr_notice("clock time is %ld.%09lu or %s",
--			ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
-+		pr_notice("clock time is %lld.%09lu or %s",
-+			(long long)ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec));
- 	}
- 
- 	/* get operation does not require any arguments */
-diff -Naur linuxptp-2.0.org/print.c linuxptp-2.0/print.c
---- linuxptp-2.0.org/print.c	2018-08-12 23:08:43.000000000 +0200
-+++ linuxptp-2.0/print.c	2020-05-29 21:34:26.166519963 +0200
-@@ -73,16 +73,16 @@
- 
- 	if (verbose) {
- 		f = level >= LOG_NOTICE ? stdout : stderr;
--		fprintf(f, "%s[%ld.%03ld]: %s%s%s\n",
-+		fprintf(f, "%s[%lld.%03ld]: %s%s%s\n",
- 			progname ? progname : "",
--			ts.tv_sec, ts.tv_nsec / 1000000,
-+			(long long)ts.tv_sec, ts.tv_nsec / 1000000,
- 			message_tag ? message_tag : "", message_tag ? " " : "",
- 			buf);
- 		fflush(f);
- 	}
- 	if (use_syslog) {
--		syslog(level, "[%ld.%03ld] %s%s%s",
--		       ts.tv_sec, ts.tv_nsec / 1000000,
-+		syslog(level, "[%lld.%03ld] %s%s%s",
-+		       (long long)ts.tv_sec, ts.tv_nsec / 1000000,
- 		       message_tag ? message_tag : "", message_tag ? " " : "",
- 		       buf);
- 	}
-diff -Naur linuxptp-2.0.org/unicast_service.c linuxptp-2.0/unicast_service.c
---- linuxptp-2.0.org/unicast_service.c	2018-08-12 23:08:43.000000000 +0200
-+++ linuxptp-2.0/unicast_service.c	2020-05-29 21:36:23.170497415 +0200
-@@ -209,9 +209,9 @@
- 	tmo = now.tv_sec + req->durationField;
- 	if (tmo > client->grant_tmo) {
- 		client->grant_tmo = tmo;
--		pr_debug("%s grant of 0x%x extended to %ld",
-+		pr_debug("%s grant of 0x%x extended to %lld",
- 			 pid2str(&client->portIdentity),
--			 client->message_types, tmo);
-+			 client->message_types, (long long)tmo);
- 	}
- }
- 
-@@ -226,8 +226,8 @@
- 	interval = pqueue_peek(p->unicast_service->queue);
- 	if (interval) {
- 		tmo.it_value = interval->tmo;
--		pr_debug("arming timer tmo={%ld,%ld}",
--			 interval->tmo.tv_sec, interval->tmo.tv_nsec);
-+		pr_debug("arming timer tmo={%lld,%ld}",
-+			 (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
- 	} else {
- 		pr_debug("stopping unicast service timer");
- 	}
-@@ -499,8 +499,8 @@
- 
- 	while ((interval = pqueue_peek(p->unicast_service->queue)) != NULL) {
- 
--		pr_debug("peek i={2^%d} tmo={%ld,%ld}", interval->log_period,
--			 interval->tmo.tv_sec, interval->tmo.tv_nsec);
-+		pr_debug("peek i={2^%d} tmo={%lld,%ld}", interval->log_period,
-+			 (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
- 
- 		if (timespec_compare(&now, &interval->tmo) >= 0) {
- 			break;
-@@ -519,8 +519,8 @@
- 		}
- 
- 		interval_increment(interval);
--		pr_debug("next i={2^%d} tmo={%ld,%ld}", interval->log_period,
--			 interval->tmo.tv_sec, interval->tmo.tv_nsec);
-+		pr_debug("next i={2^%d} tmo={%lld,%ld}", interval->log_period,
-+			 (long long)interval->tmo.tv_sec, interval->tmo.tv_nsec);
- 		pqueue_insert(p->unicast_service->queue, interval);
- 	}
- 
-diff -Naur linuxptp-2.0.org/unicast_client.c linuxptp-2.0/unicast_client.c
---- linuxptp-2.0.org/unicast_client.c	2018-08-12 23:08:43.000000000 +0200
-+++ linuxptp-2.0/unicast_client.c	2020-06-02 11:13:06.922997844 +0200
-@@ -216,7 +216,7 @@
- 				       long duration)
- {
- 	struct timespec now;
--	long tmo;
-+	time_t tmo;
- 
- 	if (clock_gettime(CLOCK_MONOTONIC, &now)) {
- 		pr_err("clock_gettime failed: %m");
-@@ -226,7 +226,7 @@
- 	tmo = now.tv_sec + duration;
- 	if (!master->renewal_tmo || tmo < master->renewal_tmo) {
- 		master->renewal_tmo = tmo;
--		pr_debug("port %d: renewal timeout at %ld", portnum(p), tmo);
-+		pr_debug("port %d: renewal timeout at %lld", portnum(p), (long long)tmo);
- 	}
- }
- 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb
index 930c667..69dee1a 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.0.bb
@@ -5,11 +5,10 @@
 SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
            file://build-Allow-CC-and-prefix-to-be-overriden.patch \
            file://no-incdefs-using-host-headers.patch \
-           file://time_t_maybe_long_long.patch \
            "
 
-SRC_URI[md5sum] = "d8bb7374943bb747db7786ac26f17f11"
-SRC_URI[sha256sum] = "0a24d9401e87d4af023d201e234d91127d82c350daad93432106284aa9459c7d"
+SRC_URI[md5sum] = "1318805702eb6d59f9f247e1dd5ce12a"
+SRC_URI[sha256sum] = "d74ceca722c75bfff53c633425f926dd48eb04f4a089451b855155c016d15785"
 
 EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
     EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.4.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.2.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.4.bb
index 3a1222e..2d4e39b 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.4.bb
@@ -14,7 +14,7 @@
 SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http \
            file://0001-Fix-bug-of-free-with-musl.patch"
 
-SRCREV = "3148fe2d5f4b87e16266dfe559c0764e16ca0546"
+SRCREV = "2d3d0941a9233889d4d5cc37f5182bbefea261ad"
 
 DEPENDS = "openssl"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.2.0.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.8.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.2.0.bb
index 4a91fa4..13794ad 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.1.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.2.0.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "cffb5147021202b064eb0a9389d0db63d1bb2dcde5a896f7785f97b1b5f51a72"
+SRC_URI[sha256sum] = "1d895f005896e8c5bcff4fe573e2fec3611bf4feee1247857e476b74323d916c"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch b/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch
new file mode 100644
index 0000000..c714f74
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch
@@ -0,0 +1,606 @@
+From 77532d2e99252e3e07afa0f918bb8c9d73798f39 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 16:56:22 -0700
+Subject: [PATCH] Make extern declarations to avoid duplicate var definitions
+
+gcc-10+ defaults to -fno-common which flags these errors about mulitple
+definitions since the variables are defined in header files which are
+included from multiple sources, this patch ensures that extern
+declaration is added appropriately
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/blacklist.c |   2 +-
+ src/blacklist.h |   2 +-
+ src/charset.c   |   2 +-
+ src/charshift.c |   2 +-
+ src/logging.c   |   2 +-
+ src/logging.h   |   4 +-
+ src/modeminit.c |   6 +-
+ src/smsd_cfg.c  |   2 +
+ src/smsd_cfg.h  | 274 ++++++++++++++++++++++++------------------------
+ src/stats.h     |  22 ++--
+ src/whitelist.c |   2 +-
+ src/whitelist.h |   2 +-
+ 12 files changed, 164 insertions(+), 158 deletions(-)
+
+diff --git a/src/blacklist.c b/src/blacklist.c
+index 7440cca..0c00dd9 100755
+--- a/src/blacklist.c
++++ b/src/blacklist.c
+@@ -17,11 +17,11 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
++#include "smsd_cfg.h"
+ #include "blacklist.h"
+ #include "extras.h"
+ #include "logging.h"
+ #include "alarm.h"
+-#include "smsd_cfg.h"
+ 
+ int inblacklist(char* msisdn)
+ {
+diff --git a/src/blacklist.h b/src/blacklist.h
+index 4f99050..61fd294 100755
+--- a/src/blacklist.h
++++ b/src/blacklist.h
+@@ -15,7 +15,7 @@ Either version 2 of the License, or (at your option) any later version.
+ #ifndef BLACK_H
+ #define BLACK_H
+ 
+-char blacklist[256];	// Filename of the black-list
++EXTERN char blacklist[256];	// Filename of the black-list
+ 
+ int inblacklist(char* msisdn);
+ 
+diff --git a/src/charset.c b/src/charset.c
+index cd7c997..1716d70 100755
+--- a/src/charset.c
++++ b/src/charset.c
+@@ -19,9 +19,9 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <syslog.h>
+ #include <ctype.h>
+ 
++#include "smsd_cfg.h"
+ #include "charset.h"
+ #include "logging.h"
+-#include "smsd_cfg.h"
+ #include "pdu.h"
+ #include "extras.h"
+ #include "charshift.h"
+diff --git a/src/charshift.c b/src/charshift.c
+index 48ba340..2d7b26c 100755
+--- a/src/charshift.c
++++ b/src/charshift.c
+@@ -25,8 +25,8 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <stdio.h>
+ #include <stdarg.h>
+ 
+-#include "logging.h"
+ #include "smsd_cfg.h"
++#include "logging.h"
+ #include "pdu.h"
+ #include "charset.h"
+ #include "extras.h"
+diff --git a/src/logging.c b/src/logging.c
+index 6ee2c4e..4af341f 100755
+--- a/src/logging.c
++++ b/src/logging.c
+@@ -12,6 +12,7 @@ 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.
+ */
+ 
++#include "smsd_cfg.h"
+ #include "logging.h"
+ #include "extras.h"
+ #include <stdio.h>
+@@ -22,7 +23,6 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <time.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+-#include "smsd_cfg.h"
+ #include "stats.h"
+ 
+ int Filehandle = -1;
+diff --git a/src/logging.h b/src/logging.h
+index 4f27906..4550234 100755
+--- a/src/logging.h
++++ b/src/logging.h
+@@ -18,7 +18,7 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <time.h>
+ 
+ // 3.1.16beta2: Moved logch() and prch() from charset.c to logging.c:
+-char logch_buffer[8192];
++EXTERN char logch_buffer[8192];
+ 
+ #ifdef __GNUC__
+ void logch(char* format, ...) __attribute__ ((format(printf, 1, 2)));
+@@ -30,7 +30,7 @@ char prch(char ch);
+ 
+ // 3.1.16beta: changed type:
+ //int trouble_logging_started;
+-time_t trouble_logging_started;
++EXTERN time_t trouble_logging_started;
+ 
+ int change_loglevel(int new_level);
+ void restore_loglevel();
+diff --git a/src/modeminit.c b/src/modeminit.c
+index 42ff6b4..0d05fe9 100755
+--- a/src/modeminit.c
++++ b/src/modeminit.c
+@@ -19,8 +19,6 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <regex.h>
+ #include <ctype.h>
+ #include <time.h>
+-#include "logging.h"
+-#include "alarm.h"
+ 
+ #ifdef SOLARIS
+ #include <sys/filio.h>
+@@ -42,9 +40,11 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <netdb.h>
+ #endif
+ 
++#include "smsd_cfg.h"
++#include "logging.h"
++#include "alarm.h"
+ #include "extras.h"
+ #include "modeminit.h"
+-#include "smsd_cfg.h"
+ #include "version.h"
+ #include "pdu.h"
+ #include "stats.h"
+diff --git a/src/smsd_cfg.c b/src/smsd_cfg.c
+index 35c1198..32472b4 100755
+--- a/src/smsd_cfg.c
++++ b/src/smsd_cfg.c
+@@ -26,6 +26,8 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <ctype.h>
+ #include <grp.h>
+ 
++#define EXTERN
++
+ #include "extras.h"
+ #include "cfgfile.h"
+ #include "smsd_cfg.h"
+diff --git a/src/smsd_cfg.h b/src/smsd_cfg.h
+index 8ae208d..d6ece37 100755
+--- a/src/smsd_cfg.h
++++ b/src/smsd_cfg.h
+@@ -15,6 +15,10 @@ Either version 2 of the License, or (at your option) any later version.
+ #ifndef SMSD_CFG_H
+ #define SMSD_CFG_H
+ 
++#ifndef EXTERN
++#define EXTERN extern
++#endif
++
+ #include <limits.h>
+ #include <sys/types.h>
+ #include <time.h>
+@@ -126,17 +130,17 @@ Either version 2 of the License, or (at your option) any later version.
+ #define ALPHABET_UNKNOWN        4
+ #define ALPHABET_DEFAULT        0
+ 
+-char process_title[32];         // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks.
+-int process_id;                 // -1 for main task, all modems have numbers starting with 0.
++EXTERN char process_title[32];         // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks.
++EXTERN int process_id;                 // -1 for main task, all modems have numbers starting with 0.
+                                 // This is the same as device, can be used like devices[process_id] if IS_MODEM_PROCESS.
+ 
+-time_t process_start_time;
++EXTERN time_t process_start_time;
+ 
+-int modem_handle;               // Handle for modem.
++EXTERN int modem_handle;               // Handle for modem.
+ 
+-int put_command_timeouts;
+-unsigned long long put_command_sent; // 3.1.16beta.
+-char tmpdir[PATH_MAX];          // 3.1.16beta.
++EXTERN int put_command_timeouts;
++EXTERN unsigned long long put_command_sent; // 3.1.16beta.
++EXTERN char tmpdir[PATH_MAX];          // 3.1.16beta.
+ 
+ typedef struct
+ {
+@@ -284,204 +288,204 @@ typedef struct
+ 
+ // NOTE for regular run intervals: effective value is at least delaytime.
+ 
+-char configfile[PATH_MAX];	// Path to config file
+-char d_spool[PATH_MAX];		// Spool directory
+-char d_failed[PATH_MAX];	// Failed spool directory
+-char d_failed_copy[PATH_MAX];	// 3.1.17.
+-char d_incoming[PATH_MAX];	// Incoming spool directory
+-char d_incoming_copy[PATH_MAX]; // 3.1.16beta2.
+-char d_report[PATH_MAX];	// Incoming report spool directory
+-char d_report_copy[PATH_MAX];	// 3.1.17.
+-char d_phonecalls[PATH_MAX];    // Incoming phonecalls data directory
+-char d_saved[PATH_MAX];         // Directory for smsd's internal use, concatenation storage files etc.
+-char d_sent[PATH_MAX];		// Sent spool directory
+-char d_sent_copy[PATH_MAX];	// 3.1.17.
+-char d_checked[PATH_MAX];	// Spool directory for checked messages (only used when no provider queues used)
+-char eventhandler[PATH_MAX];	// Global event handler program or script
+-char alarmhandler[PATH_MAX];	// Global alarm handler program or script
+-char checkhandler[PATH_MAX];    // Handler that checks if the sms file is valid.
+-int alarmlevel;			// Alarm Level (9=highest). Verbosity of alarm handler.
+-char logfile[PATH_MAX];		// Name or Handle of Log File
+-int  loglevel;			// Log Level (9=highest). Verbosity of log file.
+-_queue queues[NUMBER_OF_MODEMS]; // Queues
+-_device devices[NUMBER_OF_MODEMS]; // Modem devices
+-int delaytime;			// sleep-time after workless
+-int delaytime_mainprocess;      // sleep-time after workless, main process. If -1, delaytime is used.
+-int blocktime;			// sleep-time after multiple errors
+-int blockafter;                 // Block modem after n errors
+-int errorsleeptime;		// sleep-time after each error
+-int autosplit;			// Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH
+-int receive_before_send;	// if 1 smsd tries to receive one message before sending
+-int store_received_pdu;         // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all
+-int store_sent_pdu;             // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all
+-int validity_period;            // Validity period for messages.
+-int decode_unicode_text;        // 1 if unicode text is decoded internally.
+-int internal_combine;           // 1 if multipart message is combined internally.
+-int internal_combine_binary;    // 1 if multipart binary message is combined internally. Defaults to internal_combine.
+-int keep_filename;              // 0 if unique filename is created to each directory when a message file is moved.
+-int store_original_filename;    // 1 if an original filename is saved to message file when it's moved from
++EXTERN char configfile[PATH_MAX];	// Path to config file
++EXTERN char d_spool[PATH_MAX];		// Spool directory
++EXTERN char d_failed[PATH_MAX];	// Failed spool directory
++EXTERN char d_failed_copy[PATH_MAX];	// 3.1.17.
++EXTERN char d_incoming[PATH_MAX];	// Incoming spool directory
++EXTERN char d_incoming_copy[PATH_MAX]; // 3.1.16beta2.
++EXTERN char d_report[PATH_MAX];	// Incoming report spool directory
++EXTERN char d_report_copy[PATH_MAX];	// 3.1.17.
++EXTERN char d_phonecalls[PATH_MAX];    // Incoming phonecalls data directory
++EXTERN char d_saved[PATH_MAX];         // Directory for smsd's internal use, concatenation storage files etc.
++EXTERN char d_sent[PATH_MAX];		// Sent spool directory
++EXTERN char d_sent_copy[PATH_MAX];	// 3.1.17.
++EXTERN char d_checked[PATH_MAX];	// Spool directory for checked messages (only used when no provider queues used)
++EXTERN char eventhandler[PATH_MAX];	// Global event handler program or script
++EXTERN char alarmhandler[PATH_MAX];	// Global alarm handler program or script
++EXTERN char checkhandler[PATH_MAX];    // Handler that checks if the sms file is valid.
++EXTERN int alarmlevel;			// Alarm Level (9=highest). Verbosity of alarm handler.
++EXTERN char logfile[PATH_MAX];		// Name or Handle of Log File
++EXTERN int  loglevel;			// Log Level (9=highest). Verbosity of log file.
++EXTERN _queue queues[NUMBER_OF_MODEMS]; // Queues
++EXTERN _device devices[NUMBER_OF_MODEMS]; // Modem devices
++EXTERN int delaytime;			// sleep-time after workless
++EXTERN int delaytime_mainprocess;      // sleep-time after workless, main process. If -1, delaytime is used.
++EXTERN int blocktime;			// sleep-time after multiple errors
++EXTERN int blockafter;                 // Block modem after n errors
++EXTERN int errorsleeptime;		// sleep-time after each error
++EXTERN int autosplit;			// Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH
++EXTERN int receive_before_send;	// if 1 smsd tries to receive one message before sending
++EXTERN int store_received_pdu;         // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all
++EXTERN int store_sent_pdu;             // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all
++EXTERN int validity_period;            // Validity period for messages.
++EXTERN int decode_unicode_text;        // 1 if unicode text is decoded internally.
++EXTERN int internal_combine;           // 1 if multipart message is combined internally.
++EXTERN int internal_combine_binary;    // 1 if multipart binary message is combined internally. Defaults to internal_combine.
++EXTERN int keep_filename;              // 0 if unique filename is created to each directory when a message file is moved.
++EXTERN int store_original_filename;    // 1 if an original filename is saved to message file when it's moved from
+                                 // outgoing directory to spooler. Works together with keep_filename.
+-int date_filename;              // 1 or 2 if YYYYMMDD is included to the filename of incoming message.
+-char regular_run[PATH_MAX];     // Script/program which is run regularly.
+-int regular_run_interval;       // Number of seconds between running a regular_run script/progdam.
+-char admin_to[SIZE_TO];         // Destination number for administrative messages.
+-int filename_preview;           // Number of chars of message text to concatenate to filename.
+-int incoming_utf8;              // 1 if incoming files are saved using UTF-8 character set.
+-int outgoing_utf8;              // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM.
+-int log_charconv;               // 1 if character set conversion is logged.
+-int log_single_lines;           // 1 if linefeeds are removed from the modem response to be logged.
+-int executable_check;           // 0 if eventhandler and other executables are NOT checked during the startup checking.
+-int keep_messages;              // For testing purposes: messages are not deleted and smsd stops after first run.
+-char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages.
+-int ic_purge_hours;             // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes
+-int ic_purge_minutes;           // and if there is message parts older than defined, they are handled or deleted.
+-int ic_purge_read;              // 1 = message parts are stored as single messages. 0 = parts are just deleted.
+-int ic_purge_interval;          // 
+-char shell[PATH_MAX];           // Shell used to run eventhandler, defaults to /bin/sh
+-char adminmessage_device[32];   // Name of device used to send administrative messages of mainspooler.
+-int smart_logging;              // 1 = if loglevel is less than 7, degug log is written is there has been any errors.
+-int status_signal_quality;      // 1 = signal quality is written to status file.
+-int status_include_counters;    // 1 = succeeded, failed and received counters are included in the status line.
+-int status_include_uptime;      // 3.1.16beta: 1 = include started & uptime line in the status file.
+-int hangup_incoming_call;       // 1 = if detected unexpected input contains RING and we want to end call.
+-int max_continuous_sending;     // Defines when sending is breaked to do check/do other tasks. Time in minutes.
+-int voicecall_hangup_ath;       // If ATH is used instead of AT+CHUP.
++EXTERN int date_filename;              // 1 or 2 if YYYYMMDD is included to the filename of incoming message.
++EXTERN char regular_run[PATH_MAX];     // Script/program which is run regularly.
++EXTERN int regular_run_interval;       // Number of seconds between running a regular_run script/progdam.
++EXTERN char admin_to[SIZE_TO];         // Destination number for administrative messages.
++EXTERN int filename_preview;           // Number of chars of message text to concatenate to filename.
++EXTERN int incoming_utf8;              // 1 if incoming files are saved using UTF-8 character set.
++EXTERN int outgoing_utf8;              // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM.
++EXTERN int log_charconv;               // 1 if character set conversion is logged.
++EXTERN int log_single_lines;           // 1 if linefeeds are removed from the modem response to be logged.
++EXTERN int executable_check;           // 0 if eventhandler and other executables are NOT checked during the startup checking.
++EXTERN int keep_messages;              // For testing purposes: messages are not deleted and smsd stops after first run.
++EXTERN char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages.
++EXTERN int ic_purge_hours;             // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes
++EXTERN int ic_purge_minutes;           // and if there is message parts older than defined, they are handled or deleted.
++EXTERN int ic_purge_read;              // 1 = message parts are stored as single messages. 0 = parts are just deleted.
++EXTERN int ic_purge_interval;          // 
++EXTERN char shell[PATH_MAX];           // Shell used to run eventhandler, defaults to /bin/sh
++EXTERN char adminmessage_device[32];   // Name of device used to send administrative messages of mainspooler.
++EXTERN int smart_logging;              // 1 = if loglevel is less than 7, degug log is written is there has been any errors.
++EXTERN int status_signal_quality;      // 1 = signal quality is written to status file.
++EXTERN int status_include_counters;    // 1 = succeeded, failed and received counters are included in the status line.
++EXTERN int status_include_uptime;      // 3.1.16beta: 1 = include started & uptime line in the status file.
++EXTERN int hangup_incoming_call;       // 1 = if detected unexpected input contains RING and we want to end call.
++EXTERN int max_continuous_sending;     // Defines when sending is breaked to do check/do other tasks. Time in minutes.
++EXTERN int voicecall_hangup_ath;       // If ATH is used instead of AT+CHUP.
+ 
+ // 3.1.5:
+-int trust_outgoing;             // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling.
++EXTERN int trust_outgoing;             // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling.
+ 
+ // 3.1.5:
+-int ignore_outgoing_priority;   // 1 = Priority: high header is not checked. Speeds up spooling.
++EXTERN int ignore_outgoing_priority;   // 1 = Priority: high header is not checked. Speeds up spooling.
+ 
+ // 3.1.7:
+-int ignore_exec_output;         // 1 = stdout and stderr of eventhandlers is _not_ checked.
++EXTERN int ignore_exec_output;         // 1 = stdout and stderr of eventhandlers is _not_ checked.
+ 
+ // 3.1.7:
+-mode_t conf_umask;              // File mode creation mask for smsd and modem processes.
++EXTERN mode_t conf_umask;              // File mode creation mask for smsd and modem processes.
+ 
+ // 3.1.7:
+-int trim_text;                  // 1 = trailing whitespaces are removed from text:
++EXTERN int trim_text;                  // 1 = trailing whitespaces are removed from text:
+ 
+ // 3.1.7:
+-int use_linux_ps_trick;         // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc.
++EXTERN int use_linux_ps_trick;         // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc.
+ 
+ // 3.1.7:
+-int log_unmodified;
++EXTERN int log_unmodified;
+ 
+ // 3.1.7:
+-char suspend_filename[PATH_MAX];
++EXTERN char suspend_filename[PATH_MAX];
+ 
+ // 3.1.9:
+-int spool_directory_order;
++EXTERN int spool_directory_order;
+ 
+ // 3.1.9: 1 if read_from_modem is logged.
+-int log_read_from_modem;
++EXTERN int log_read_from_modem;
+ 
+ // 3.1.16beta2: log_read_timing for performance tuning.
+-int log_read_timing;
++EXTERN int log_read_timing;
+ 
+ // 3.1.16beta:
+-int log_response_time;
++EXTERN int log_response_time;
+ 
+ // 3.1.16beta2:
+-int default_alphabet;
++EXTERN int default_alphabet;
+ 
+ // 3.1.17: Child process for the mainprocess:
+-char mainprocess_child[PATH_MAX];
+-char mainprocess_child_args[PATH_MAX];
++EXTERN char mainprocess_child[PATH_MAX];
++EXTERN char mainprocess_child_args[PATH_MAX];
+ 
+ // 3.1.17: Notifier for the mainprocess:
+-int mainprocess_notifier;
++EXTERN int mainprocess_notifier;
+ 
+ // 3.1.17: If *_copy was made, evenhandler can use it instead of original file:
+-int eventhandler_use_copy;
++EXTERN int eventhandler_use_copy;
+ 
+ // 3.1.17: This defines how long to sleep while looping:
+-int sleeptime_mainprocess;
++EXTERN int sleeptime_mainprocess;
+ 
+ // 3.1.17: Defines how often PID is checked to detect if another smsd is running:
+-int check_pid_interval;
++EXTERN int check_pid_interval;
+ 
+ // 3.1.18: start script/program for mainprocess:
+-char mainprocess_start[PATH_MAX];
+-char mainprocess_start_args[PATH_MAX];
++EXTERN char mainprocess_start[PATH_MAX];
++EXTERN char mainprocess_start_args[PATH_MAX];
+ 
+-int message_count;              // Counter for sent messages. Multipart message is one message.
++EXTERN int message_count;              // Counter for sent messages. Multipart message is one message.
+ 
+-volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received.
+-volatile sig_atomic_t terminate; // To terminate when SIGTERM is received.
++EXTERN volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received.
++EXTERN volatile sig_atomic_t terminate; // To terminate when SIGTERM is received.
+ 
+-char username[65];              // user and group name which are used to run.
+-char groupname[65];             // (max length is just a guess)
++EXTERN char username[65];              // user and group name which are used to run.
++EXTERN char groupname[65];             // (max length is just a guess)
+ 
+-char infofile[PATH_MAX];        // Hepler file for stopping the smsd smoothly.
+-char pidfile[PATH_MAX];         // File where a process id is stored.
++EXTERN char infofile[PATH_MAX];        // Hepler file for stopping the smsd smoothly.
++EXTERN char pidfile[PATH_MAX];         // File where a process id is stored.
+ 
+ // Command line arguments:
+-char arg_username[65];
+-char arg_groupname[65];
+-char arg_infofile[PATH_MAX];
+-char arg_pidfile[PATH_MAX];
+-char arg_logfile[PATH_MAX];
+-int arg_terminal;
++EXTERN char arg_username[65];
++EXTERN char arg_groupname[65];
++EXTERN char arg_infofile[PATH_MAX];
++EXTERN char arg_pidfile[PATH_MAX];
++EXTERN char arg_logfile[PATH_MAX];
++EXTERN int arg_terminal;
+ // 3.1.7:
+-char arg_7bit_packed[512];
+-int do_encode_decode_arg_7bit_packed;
++EXTERN char arg_7bit_packed[512];
++EXTERN int do_encode_decode_arg_7bit_packed;
+ 
+-int terminal;                   // 1 if smsd is communicating with terminal.
+-pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes.
+-char run_info[PATH_MAX];        // Information about external script/program execution.
++EXTERN int terminal;                   // 1 if smsd is communicating with terminal.
++EXTERN pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes.
++EXTERN char run_info[PATH_MAX];        // Information about external script/program execution.
+ 
+-char communicate[32];           // Device name for terminal communication mode.
++EXTERN char communicate[32];           // Device name for terminal communication mode.
+ 
+-char international_prefixes[PATH_MAX +1];
+-char national_prefixes[PATH_MAX +1];
++EXTERN char international_prefixes[PATH_MAX +1];
++EXTERN char national_prefixes[PATH_MAX +1];
+ 
+ // Storage for startup errors:
+-char *startup_err_str;
+-int startup_err_count;
++EXTERN char *startup_err_str;
++EXTERN int startup_err_count;
+ 
+ // Storage for PDU's:
+-char *incoming_pdu_store;
+-char *outgoing_pdu_store;
+-char *routed_pdu_store;
++EXTERN char *incoming_pdu_store;
++EXTERN char *outgoing_pdu_store;
++EXTERN char *routed_pdu_store;
+ 
+ // Storage for getfile errors:
+-char *getfile_err_store;
++EXTERN char *getfile_err_store;
+ 
+ // Text buffer for error messages:
+-char tb[SIZE_TB];
++EXTERN char tb[SIZE_TB];
+ 
+ // Buffer for SIM memory checking:
+-char *check_memory_buffer;
+-size_t check_memory_buffer_size;
++EXTERN char *check_memory_buffer;
++EXTERN size_t check_memory_buffer_size;
+ 
+-int os_cygwin;                  // 1 if we are on Cygwin.
++EXTERN int os_cygwin;                  // 1 if we are on Cygwin.
+ 
+-char language_file[PATH_MAX];   // File name of translated headers.
+-char yes_chars[SIZE_HEADER];    // Characters which mean "yes" in the yesno() question.
+-char no_chars[SIZE_HEADER];     // See details inside read_translation() function.
+-char yes_word[SIZE_HEADER];     // "yes" printed as an output.
+-char no_word[SIZE_HEADER];      // "no"
+-char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports).
+-char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps
+-char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename
+-int translate_incoming;         // 0 if incoming message headers are NOT transtaled.
++EXTERN char language_file[PATH_MAX];   // File name of translated headers.
++EXTERN char yes_chars[SIZE_HEADER];    // Characters which mean "yes" in the yesno() question.
++EXTERN char no_chars[SIZE_HEADER];     // See details inside read_translation() function.
++EXTERN char yes_word[SIZE_HEADER];     // "yes" printed as an output.
++EXTERN char no_word[SIZE_HEADER];      // "no"
++EXTERN char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports).
++EXTERN char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps
++EXTERN char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename
++EXTERN int translate_incoming;         // 0 if incoming message headers are NOT transtaled.
+ 
+ // 3.1.14:
+-int logtime_us;
+-int logtime_ms;
++EXTERN int logtime_us;
++EXTERN int logtime_ms;
+ 
+ // 3.1.14:
+-int shell_test;
++EXTERN int shell_test;
+ 
+ // Next two are for debugging purposes:
+-int enable_smsd_debug;
+-char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file.
++EXTERN int enable_smsd_debug;
++EXTERN char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file.
+ 
+ // 3.1.20: Alt keys in communication mode:
+ #define COMMUNICATE_A_KEY_COUNT 10
+-char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256];
++EXTERN char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256];
+ 
+ /* initialize all variable with default values */
+ 
+diff --git a/src/stats.h b/src/stats.h
+index bd5cdc9..a614af1 100755
+--- a/src/stats.h
++++ b/src/stats.h
+@@ -33,17 +33,17 @@ typedef struct
+   int ber;
+ } _stats;
+ 
+-_stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!)
+-int rejected_counter;		// Statistic counter, rejected SM, number does not fit into any queue
+-time_t start_time;		// Start time of smsd, allows statistic functions
+-int printstatus;		// if 1 smsd outputs status on stdout
+-time_t last_stats;		// time when the last stats file was created
+-char d_stats[PATH_MAX];		// path to statistic files
+-int stats_interval;		// time between statistic files in seconds.
+-int stats_no_zeroes;		// Suppress files that contain only zeroes
+-int status_interval;            // time between updating status file in seconds
+-
+-char *shared_buffer;
++EXTERN _stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!)
++EXTERN int rejected_counter;		// Statistic counter, rejected SM, number does not fit into any queue
++EXTERN time_t start_time;		// Start time of smsd, allows statistic functions
++EXTERN int printstatus;		// if 1 smsd outputs status on stdout
++EXTERN time_t last_stats;		// time when the last stats file was created
++EXTERN char d_stats[PATH_MAX];		// path to statistic files
++EXTERN int stats_interval;		// time between statistic files in seconds.
++EXTERN int stats_no_zeroes;		// Suppress files that contain only zeroes
++EXTERN int status_interval;            // time between updating status file in seconds
++
++EXTERN char *shared_buffer;
+ 
+ /* Creates shared memory variables for statistic data */
+ 
+diff --git a/src/whitelist.c b/src/whitelist.c
+index 4ee7a69..3d90bf4 100755
+--- a/src/whitelist.c
++++ b/src/whitelist.c
+@@ -17,11 +17,11 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
++#include "smsd_cfg.h"
+ #include "whitelist.h"
+ #include "extras.h"
+ #include "logging.h"
+ #include "alarm.h"
+-#include "smsd_cfg.h"
+ 
+ /* Used with >= 3.1x */
+ int inwhitelist_q(char* msisdn, char *queuename)
+diff --git a/src/whitelist.h b/src/whitelist.h
+index 88aea86..3f904f4 100755
+--- a/src/whitelist.h
++++ b/src/whitelist.h
+@@ -15,7 +15,7 @@ Either version 2 of the License, or (at your option) any later version.
+ #ifndef WHITE_H
+ #define WHITE_H
+ 
+-char whitelist[256];	// Filename of the white-list
++EXTERN char whitelist[256];	// Filename of the white-list
+ 
+ /* Used with >= 3.1x */
+ int inwhitelist_q(char* msisdn, char *queuename);
+-- 
+2.28.0
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb b/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
index 6e6413b..ca40957 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
@@ -7,7 +7,9 @@
 
 SRC_URI = "http://smstools3.kekekasvi.com/packages/${BP}.tar.gz \
            file://sms_binpath.patch \
-           file://scripts_no_bash.patch"
+           file://scripts_no_bash.patch \
+           file://0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch \
+           "
 
 SRC_URI[md5sum] = "6a9f038fb38a49cc3a4f8f14a88fb8af"
 SRC_URI[sha256sum] = "a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
index 7284234..3860fd8 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
@@ -1,4 +1,5 @@
 DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
+HOMEPAGE = "https://github.com/libimobiledevice/usbmuxd"
 LICENSE = "GPLv3 & GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=ebb5c50ab7cab4baeffba14977030c07 \
                     file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504"
@@ -9,7 +10,7 @@
 
 PKGV = "${GITPKGVTAG}"
 
-SRCREV = "ee85938c21043ef5f7cd4dfbc7677f385814d4d8"
+SRCREV = "79c8b38d1488a6b07e1e68f39d8caec3f1a45622"
 SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch
new file mode 100644
index 0000000..fc5e2e9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch
@@ -0,0 +1,29 @@
+Mark extern variables with 'extern' keyword
+
+This ensures that compilers with -fno-common does not generate multiple definitions
+
+Upstream-Status: Pending
+Signedd-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/lib/wfa_cs.c
++++ b/lib/wfa_cs.c
+@@ -71,7 +71,7 @@ int wfaExecuteCLI(char *CLI);
+ 
+ /* Since the two definitions are used all over the CA function */
+ char gCmdStr[WFA_CMD_STR_SZ];
+-dutCmdResponse_t gGenericResp;
++extern dutCmdResponse_t gGenericResp;
+ int wfaTGSetPrio(int sockfd, int tgClass);
+ void create_apts_msg(int msg, unsigned int txbuf[],int id);
+ 
+--- a/lib/wfa_thr.c
++++ b/lib/wfa_thr.c
+@@ -41,7 +41,7 @@
+ /*
+  * external global thread sync variables
+  */
+-tgWMM_t wmm_thr[WFA_THREADS_NUM];
++extern tgWMM_t wmm_thr[WFA_THREADS_NUM];
+ extern int resetsnd;
+ extern int resetrcv;
+ extern int newCmdOn;
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb
index 99cfb32..cb39f5a 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb
@@ -8,12 +8,13 @@
 SECTION = "test"
 
 S = "${WORKDIR}/git"
-SRCREV = "f7a8d7ef7d1a831c1bb47de21fa083536ea2f3a9"
+SRCREV = "2da947374c8324f88a0e2155aeba4cf75464b0d8"
 SRC_URI = "git://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT.git \
 	file://0001-Use-toolchain-from-environment-variables.patch \
 	file://0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch \
 	file://0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch \
 	file://0004-run-ranlib-per-library-and-use-AR.patch \
+        file://fno-common.patch \
 "
 
 # to avoid host path QA error
