diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
index 2343cec..eb42e62 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
@@ -4,7 +4,7 @@
 
 DEPENDS = "gtk+3 glib-2.0 bluez5 python3-pygobject python3-cython-native"
 
-inherit meson gettext systemd gsettings pkgconfig python3native gtk-icon-cache
+inherit meson gettext systemd gsettings pkgconfig python3native gtk-icon-cache useradd
 
 SRC_URI = " \
     git://github.com/blueman-project/blueman.git;protocol=https;branch=2-3-stable \
@@ -23,6 +23,7 @@
 RRECOMMENDS:${PN} += "adwaita-icon-theme"
 RDEPENDS:${PN} += " \
     python3-core \
+    python3-ctypes \
     python3-dbus \
     python3-pygobject \
     python3-terminal \
@@ -58,3 +59,28 @@
                                               ${D}${bindir}/blueman-tray
 }
 
+do_install:append() {
+    install -d ${D}${datadir}/polkit-1/rules.d
+    cat >${D}${datadir}/polkit-1/rules.d/51-blueman.rules <<EOF
+/* Allow users in wheel group to use blueman feature requiring root without authentication */
+polkit.addRule(function(action, subject) {
+    if ((action.id == "org.blueman.network.setup" ||
+         action.id == "org.blueman.dhcp.client" ||
+         action.id == "org.blueman.rfkill.setstate" ||
+         action.id == "org.blueman.pppd.pppconnect") &&
+        subject.isInGroup("wheel")) {
+
+        return polkit.Result.YES;
+    }
+});
+EOF
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd"
+
+do_install:append() {
+        # Fix up permissions on polkit rules.d to work with rpm4 constraints
+        chmod 700 ${D}/${datadir}/polkit-1/rules.d
+        chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+}
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
index 91b3046..23e4368 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
@@ -17,19 +17,10 @@
  void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b )
  {
 -    mbedtls_mpi_uint c = 0, t = 0;
-+    mbedtls_mpi_uint c = 0;
++    mbedtls_mpi_uint c = 0, t __attribute__ ((unused)) = 0;
  
  #if defined(MULADDC_HUIT)
      for( ; i >= 8; i -= 8 )
-@@ -1595,8 +1595,6 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_
-     }
- #endif /* MULADDC_HUIT */
- 
--    t++;
--
-     do {
-         *d += c; c = ( *d < c ); d++;
-     }
 --- a/third_party/openthread/repo/third_party/mbedtls/repo/CMakeLists.txt
 +++ b/third_party/openthread/repo/third_party/mbedtls/repo/CMakeLists.txt
 @@ -192,7 +192,7 @@ if(CMAKE_COMPILER_IS_GNU)
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch
index be26a20..ffaff48 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch
@@ -17,19 +17,10 @@
  void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b )
  {
 -    mbedtls_mpi_uint c = 0, t = 0;
-+    mbedtls_mpi_uint c = 0;
++    mbedtls_mpi_uint c = 0, t __attribute__ ((unused)) = 0;
  
  #if defined(MULADDC_HUIT)
      for( ; i >= 8; i -= 8 )
-@@ -1595,8 +1595,6 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_
-     }
- #endif /* MULADDC_HUIT */
- 
--    t++;
--
-     do {
-         *d += c; c = ( *d < c ); d++;
-     }
 --- a/third_party/mbedtls/repo/CMakeLists.txt
 +++ b/third_party/mbedtls/repo/CMakeLists.txt
 @@ -192,7 +192,7 @@ if(CMAKE_COMPILER_IS_GNU)
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0008-Deleted-settiong-of-python-to-fix-the-install-confli.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch
similarity index 100%
rename from meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0008-Deleted-settiong-of-python-to-fix-the-install-confli.patch
rename to meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-waf-Fix-errors-with-Werror-implicit-function-declara.patch b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-waf-Fix-errors-with-Werror-implicit-function-declara.patch
deleted file mode 100644
index 91eb229..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0007-waf-Fix-errors-with-Werror-implicit-function-declara.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 95946ce8b6317f68c51338d19d237ce6da61d1c3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Aug 2022 13:05:26 -0700
-Subject: [PATCH] waf: Fix errors with Werror=implicit-function-declaration
- turned on
-
-Clang-15 turns this option into errors by default, and it results in
-rpath check failures
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- buildtools/wafsamba/samba_waf18.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/buildtools/wafsamba/samba_waf18.py b/buildtools/wafsamba/samba_waf18.py
-index e2a078b..e145c77 100644
---- a/buildtools/wafsamba/samba_waf18.py
-+++ b/buildtools/wafsamba/samba_waf18.py
-@@ -209,7 +209,7 @@ def CHECK_LIBRARY_SUPPORT(conf, rpath=False, version_script=False, msg=None):
-         lib_node.parent.mkdir()
-         lib_node.write('int lib_func(void) { return 42; }\n', 'w')
-         main_node = bld.srcnode.make_node('main.c')
--        main_node.write('int main(void) {return !(lib_func() == 42);}', 'w')
-+        main_node.write('int lib_func(void); int main(void) {return !(lib_func() == 42);}', 'w')
-         linkflags = []
-         if version_script:
-             script = bld.srcnode.make_node('ldscript')
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.17.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.17.5.bb
similarity index 98%
rename from meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.17.4.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.17.5.bb
index 966eaf9..1548ffa 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.17.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.17.5.bb
@@ -23,8 +23,7 @@
            file://0004-Add-options-to-configure-the-use-of-libbsd.patch \
            file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \
            file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \
-           file://0007-waf-Fix-errors-with-Werror-implicit-function-declara.patch \
-           file://0008-Deleted-settiong-of-python-to-fix-the-install-confli.patch \
+           file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \
            "
 
 SRC_URI:append:libc-musl = " \
@@ -33,7 +32,7 @@
            file://cmocka-uintptr_t.patch \
            "
 
-SRC_URI[sha256sum] = "c0512079db4cac707ccea4c18aebbd6b2eb3acf6e90735e7f645a326be1f4537"
+SRC_URI[sha256sum] = "ebb7880d474ffc09d73b5fc77bcbd657f6235910337331a9c24d7f69ca11442b"
 
 UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.17(\.\d+)+).tar.gz"
 
