diff --git a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
deleted file mode 100644
index f65d26a..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
+++ /dev/null
@@ -1,16 +0,0 @@
----
- configure.ac |    1 +
- 1 file changed, 1 insertion(+)
-
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -56,6 +56,7 @@ AM_CONDITIONAL([ENABLE_EXAMPLES], [test
- # Checks for programs.
- AC_PROG_CC
- AC_PROG_CC_C99
-+AM_PROG_AR
- 
- # Enable automake silent build rules.
- m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
diff --git a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
index 6c4f4a0..b7c1958 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -8,11 +8,10 @@
 
 inherit autotools pkgconfig
 
-PV = "0.4.2+gitr${SRCPV}"
+PV = "0.6.0"
 
-SRCREV = "5f765f91430f16932d96b3777404420aa2dd4c7c"
-SRC_URI = "git://git.libdivecomputer.org/libdivecomputer.git \
-           file://fix-ar.patch \
+SRCREV = "1195abc2f4acc7b10175d570ec73549d0938c83e"
+SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https \
           "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
index 3a0a87e..c9d259b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
@@ -15,10 +15,9 @@
 
 PV = "1.3+git${SRCPV}"
 
-SRCREV = "c6934373c7bac91499ff7bbe7d2439599325ca63"
+SRCREV = "116219e215858f4af9370171d3ead63baca8fdb4"
 
 SRC_URI = "git://github.com/thkukuk/libnss_nisplus \
-           file://0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch \
           "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch
deleted file mode 100644
index cf380dd..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From 184bda40e05053cd2df61c28bec0baa7353697bb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 28 Aug 2019 09:49:10 -0700
-Subject: [PATCH] nisplus-hosts: Remove use of RES_USE_INET6
-
-Upstream glibc dropped it starting glibc 2.30
-see
-https://sourceware.org/git/?p=glibc.git;a=commit;h=3f8b44be0a658266adff5ece1e4bc3ce097a5dbe
-
-Upstream-Status: Submitted [https://github.com/thkukuk/libnss_nisplus/pull/2]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Makefile.am     |  3 +-
- src/mapv4v6addr.h   | 69 ---------------------------------------------
- src/nisplus-hosts.c | 58 ++++++++-----------------------------
- 3 files changed, 13 insertions(+), 117 deletions(-)
- delete mode 100644 src/mapv4v6addr.h
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index e879d5c..37ef86c 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -15,8 +15,7 @@ AM_CPPFLAGS = -I$(srcdir) @TIRPC_CFLAGS@ @LIBNSL_CFLAGS@
- 
- lib_LTLIBRARIES = libnss_nisplus.la
- 
--noinst_HEADERS = libc-lock.h nss-nisplus.h netgroup.h nisplus-parser.h \
--		 mapv4v6addr.h
-+noinst_HEADERS = libc-lock.h nss-nisplus.h netgroup.h nisplus-parser.h
- check_PROGRAMS = nss_loader-test
- nss_loader_test_LDADD = -ldl
- 
-diff --git a/src/mapv4v6addr.h b/src/mapv4v6addr.h
-deleted file mode 100644
-index 7f85f7d..0000000
---- a/src/mapv4v6addr.h
-+++ /dev/null
-@@ -1,69 +0,0 @@
--/*
-- * ++Copyright++ 1985, 1988, 1993
-- * -
-- * Copyright (c) 1985, 1988, 1993
-- *    The Regents of the University of California.  All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- *    notice, this list of conditions and the following disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- *    notice, this list of conditions and the following disclaimer in the
-- *    documentation and/or other materials provided with the distribution.
-- * 4. Neither the name of the University nor the names of its contributors
-- *    may be used to endorse or promote products derived from this software
-- *    without specific prior written permission.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-- * SUCH DAMAGE.
-- * -
-- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
-- *
-- * Permission to use, copy, modify, and distribute this software for any
-- * purpose with or without fee is hereby granted, provided that the above
-- * copyright notice and this permission notice appear in all copies, and that
-- * the name of Digital Equipment Corporation not be used in advertising or
-- * publicity pertaining to distribution of the document or software without
-- * specific, written prior permission.
-- *
-- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
-- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-- * SOFTWARE.
-- * -
-- * --Copyright--
-- */
--
--#include <string.h>
--#include <arpa/nameser.h>
--
--static void
--map_v4v6_address (const char *src, char *dst)
--{
--  u_char *p = (u_char *) dst;
--  int i;
--
--  /* Move the IPv4 part to the right position.  */
--  memcpy (dst + 12, src, INADDRSZ);
--
--  /* Mark this ipv6 addr as a mapped ipv4. */
--  for (i = 0; i < 10; i++)
--    *p++ = 0x00;
--  *p++ = 0xff;
--  *p = 0xff;
--}
-diff --git a/src/nisplus-hosts.c b/src/nisplus-hosts.c
-index cc00aa2..d37b209 100644
---- a/src/nisplus-hosts.c
-+++ b/src/nisplus-hosts.c
-@@ -42,14 +42,9 @@ static u_long tablename_len;
- #define NISENTRYLEN(idx, col, res) \
- 	(NIS_RES_OBJECT (res)[idx].EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len)
- 
--/* Get implementation for some internal functions. */
--#include "mapv4v6addr.h"
--
--
- static int
- _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
--			    char *buffer, size_t buflen, int *errnop,
--			    int flags)
-+			    char *buffer, size_t buflen, int *errnop)
- {
-   unsigned int i;
-   char *first_unused = buffer;
-@@ -66,8 +61,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
- 
-   char *data = first_unused;
- 
--  if (room_left < (af != AF_INET || (flags & AI_V4MAPPED) != 0
--		   ? IN6ADDRSZ : INADDRSZ))
-+  if (room_left < INADDRSZ)
-     {
-     no_more_room:
-       *errnop = ERANGE;
-@@ -78,18 +72,8 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
-   if (af != AF_INET6
-       && inet_pton (AF_INET, NISENTRYVAL (0, 2, result), data) > 0)
-     {
--      assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC);
--      if (flags & AI_V4MAPPED)
--	{
--	  map_v4v6_address (data, data);
--	  host->h_addrtype = AF_INET6;
--	  host->h_length = IN6ADDRSZ;
--	}
--      else
--	{
--	  host->h_addrtype = AF_INET;
--	  host->h_length = INADDRSZ;
--	}
-+      host->h_addrtype = AF_INET;
-+      host->h_length = INADDRSZ;
-     }
-   else if (af != AF_INET
- 	   && inet_pton (AF_INET6, NISENTRYVAL (0, 2, result), data) > 0)
-@@ -319,12 +303,8 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
- 	    }
- 	}
- 
--      if (_res.options & RES_USE_INET6)
--	parse_res = _nss_nisplus_parse_hostent (result, AF_INET6, host, buffer,
--						buflen, errnop, AI_V4MAPPED);
--      else
--	parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer,
--						buflen, errnop, 0);
-+      parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer,
-+						buflen, errnop);
- 
-       if (parse_res == -1)
- 	{
-@@ -379,7 +359,7 @@ get_tablename (int *herrnop)
- static enum nss_status
- internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
- 			   char *buffer, size_t buflen, int *errnop,
--			   int *herrnop, int flags)
-+			   int *herrnop)
- {
-   if (tablename_val == NULL)
-     {
-@@ -454,7 +434,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
-     }
- 
-   int parse_res = _nss_nisplus_parse_hostent (result, af, host, buffer,
--					      buflen, errnop, flags);
-+					      buflen, errnop);
- 
-   nis_freeresult (result);
- 
-@@ -485,8 +465,7 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,
-     }
- 
-   return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop,
--				    herrnop,
--			 ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0));
-+				    herrnop);
- }
- 
- 
-@@ -495,19 +474,8 @@ _nss_nisplus_gethostbyname_r (const char *name, struct hostent *host,
- 			      char *buffer, size_t buflen, int *errnop,
- 			      int *h_errnop)
- {
--  if (_res.options & RES_USE_INET6)
--    {
--      enum nss_status status;
--
--      status = internal_gethostbyname2_r (name, AF_INET6, host, buffer,
--					  buflen, errnop, h_errnop,
--					  AI_V4MAPPED);
--      if (status == NSS_STATUS_SUCCESS)
--	return status;
--    }
--
-   return internal_gethostbyname2_r (name, AF_INET, host, buffer,
--				   buflen, errnop, h_errnop, 0);
-+				   buflen, errnop, h_errnop);
- }
- 
- 
-@@ -555,9 +523,7 @@ _nss_nisplus_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
-     }
- 
-   parse_res = _nss_nisplus_parse_hostent (result, af, host,
--					  buffer, buflen, errnop,
--					  ((_res.options & RES_USE_INET6)
--					   ? AI_V4MAPPED : 0));
-+					  buffer, buflen, errnop);
-   nis_freeresult (result);
- 
-   if (parse_res > 0)
-@@ -584,7 +550,7 @@ _nss_nisplus_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
- 
-   enum nss_status status = internal_gethostbyname2_r (name, AF_UNSPEC, &host,
- 						      buffer, buflen,
--						      errnop, herrnop, 0);
-+						      errnop, herrnop);
-   if (status == NSS_STATUS_SUCCESS)
-     {
-       if (*pat == NULL)
--- 
-2.23.0
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb
rename to meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
index f929279..16a83a4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
@@ -15,8 +15,7 @@
 inherit distro_features_check
 REQUIRED_DISTRO_FEATURES = "pam"
 
-# v2.6.9
-SRCREV = "5efb1545dbac7e6d1e0a992f3e84ca12cea1c18e"
+SRCREV = "d8eba6cb6682b59d84ca1da67a523520b879ade6"
 
 SRC_URI = "git://github.com/Openwsman/openwsman.git \
            file://libssl-is-required-if-eventint-supported.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch
deleted file mode 100644
index 0c79c4c..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl/0001-Fix-clang-warning-about-non-virtual-dtor.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 340110292b35d367205953a59e7eab28e1f4a0bb Mon Sep 17 00:00:00 2001
-From: Daniel Frey <d.frey@gmx.de>
-Date: Sat, 7 Apr 2018 09:13:51 +0200
-Subject: [PATCH] Fix clang-warning about non-virtual dtor
-
-Upstream-Status: Backport [https://github.com/taocpp/PEGTL/commit/340110292b35d367205953a59e7eab28e1f4a0bb]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/example/pegtl/json_classes.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/example/pegtl/json_classes.hpp
-+++ b/src/example/pegtl/json_classes.hpp
-@@ -34,10 +34,7 @@ namespace examples
-          : type( in_type )
-       {
-       }
--
--      ~json_base()
--      {
--      }
-+      virtual ~json_base() = default;
-    };
- 
-    inline std::ostream& operator<<( std::ostream& o, const json_base& j )
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb
deleted file mode 100644
index 344a805..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.1.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION="header-only library for creating parsers according to Parsing Expression Grammar"
-HOMEPAGE="https://github.com/taocpp/PEGTL"
-LICENSE="MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=80cb066ab204c7fe022f1cfe0c2c6818"
-
-SRCREV = "776fa4a1e8bda860008524f6dd9473967c8375b1"
-SRC_URI = "git://git@github.com/taocpp/PEGTL.git;protocol=https;branch=master \
-           file://0001-Fix-clang-warning-about-non-virtual-dtor.patch \
-          "
-
-inherit cmake
-
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb
new file mode 100644
index 0000000..7333363
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_2.8.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION="header-only library for creating parsers according to Parsing Expression Grammar"
+HOMEPAGE="https://github.com/taocpp/PEGTL"
+LICENSE="MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae77b0d903a788cb48f4f0926ffc468b"
+
+SRCREV = "7aff80da2ca4fcb0b47f32ba684ff2e1cd48c579"
+SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=2.x \
+          "
+
+inherit cmake
+
+S = "${WORKDIR}/git"
