diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch
deleted file mode 100644
index c3c3050924..0000000000
--- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 647f3d946ec3fe4800b2bec89371f85a1a4b15cf Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 23 May 2019 23:44:06 +0200
-Subject: [PATCH] Set paths to ssh-agent and ssh-add by configure options
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We have no executables in our sysroot so configuration won't find them.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
----
- configure.ac | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f4f793c..5194e5d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -356,8 +356,15 @@ if test "$enable_ssh_agent" = "no"; then
- 	SSH_AGENT=false
- 	SSH_ADD=false
- else
--	AC_PATH_PROG([SSH_AGENT], [ssh-agent], [no])
--	AC_PATH_PROG([SSH_ADD], [ssh-add], [no])
-+    AC_ARG_WITH([ssh-agent-path],
-+                [AC_HELP_STRING([--with-ssh-agent-path=PATH],
-+                                 [path to ssh-agent])],
-+                 [SSH_AGENT=$with_ssh_agent_path], [SSH_AGENT=no])
-+    AC_ARG_WITH([ssh-add-path],
-+                [AC_HELP_STRING([--with-ssh-add-path=PATH],
-+                                 [path to ssh-add])],
-+                 [SSH_ADD=$with_ssh_add_path], [SSH_ADD=no])
-+
- 	if test "$SSH_AGENT" = "no" -o "$SSH_ADD" = "no"; then
- 		AC_MSG_ERROR([the ssh-agent and ssh-add commands were not found])
- 	else
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-meson-allow-setting-the-paths-to-ssh-agent-and-ssh-add-by-option.patch b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-meson-allow-setting-the-paths-to-ssh-agent-and-ssh-add-by-option.patch
new file mode 100644
index 0000000000..270fda75e0
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-meson-allow-setting-the-paths-to-ssh-agent-and-ssh-add-by-option.patch
@@ -0,0 +1,77 @@
+From ed91fc1a7fabd32055442204291db39bb73a603e Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 7 Sep 2026 09:20:06 +0200
+Subject: [PATCH] meson: allow setting the paths to ssh-agent and ssh-add by
+ option
+
+When cross compiling there are no target executables in the sysroot, so
+find_program() cannot locate ssh-agent and ssh-add although they will be
+available at runtime. Add string options that take the paths directly
+and fall back to the lookup when they are not set.
+
+Upstream-Status: Inappropriate [OE specific]
+
+AI-Generated: Uses Claude Code (Claude Fable 5.1)
+---
+ meson.build       | 14 ++++++++++----
+ meson_options.txt | 12 ++++++++++++
+ 2 files changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 001ed81..10e8f9a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -48,8 +48,14 @@ if libsystemd_dep.found()
+ endif
+ 
+ if get_option('ssh-agent')
+-  ssh_agent_bin = find_program('ssh-agent')
+-  ssh_add_bin = find_program('ssh-add')
++  ssh_agent_path = get_option('ssh-agent-path')
++  if ssh_agent_path == ''
++    ssh_agent_path = find_program('ssh-agent').full_path()
++  endif
++  ssh_add_path = get_option('ssh-add-path')
++  if ssh_add_path == ''
++    ssh_add_path = find_program('ssh-add').full_path()
++  endif
+ endif
+ 
+ if get_option('pam')
+@@ -97,8 +103,8 @@ conf.set('WITH_SELINUX', libselinux_dep.found())
+ conf.set('WITH_SYSTEMD', libsystemd_dep.found())
+ if get_option('ssh-agent')
+   conf.set('WITH_SSH', true)
+-  conf.set_quoted('SSH_AGENT', ssh_agent_bin.full_path())
+-  conf.set_quoted('SSH_ADD', ssh_add_bin.full_path())
++  conf.set_quoted('SSH_AGENT', ssh_agent_path)
++  conf.set_quoted('SSH_ADD', ssh_add_path)
+ endif
+ conf.set('DOTLOCK_USE_PTHREAD', true)
+ conf.set('DOTLOCK_GLIB_LOGGING', true)
+diff --git a/meson_options.txt b/meson_options.txt
+index 55d9a3f..ed860fb 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -10,6 +10,18 @@ option('ssh-agent',
+   description: 'Include SSH agent in gnome-keyring',
+ )
+ 
++option('ssh-agent-path',
++  type: 'string',
++  value: '',
++  description: 'Path to the ssh-agent binary (skips the build time lookup)',
++)
++
++option('ssh-add-path',
++  type: 'string',
++  value: '',
++  description: 'Path to the ssh-add binary (skips the build time lookup)',
++)
++
+ option('selinux',
+   type: 'feature',
+   value: 'auto',
+-- 
+2.55.0
+
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/musl.patch b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/musl.patch
deleted file mode 100644
index 050b87ab24..0000000000
--- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/musl.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-include sys/select.h for FD_* macros
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: gnome-keyring-2.32.1/pkcs11/rpc-layer/gkm-rpc-daemon-standalone.c
-===================================================================
---- gnome-keyring-2.32.1.orig/pkcs11/rpc-layer/gkm-rpc-daemon-standalone.c
-+++ gnome-keyring-2.32.1/pkcs11/rpc-layer/gkm-rpc-daemon-standalone.c
-@@ -32,6 +32,7 @@
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <sys/select.h>
- 
- #include <dlfcn.h>
- #include <pthread.h>
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.2.bb b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.2.bb
deleted file mode 100644
index fcff02a4b3..0000000000
--- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.2.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Password and keyring managing daemon"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome"
-
-LICENSE = "GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = " \
-    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-CVE_PRODUCT = "gnome-keyring gnome_keyring"
-
-DEPENDS = " \
-    glib-2.0-native \
-    gtk+3 \
-    gcr3 \
-    libgcrypt \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
-"
-
-GNOMEBASEBUILDCLASS = "autotools"
-inherit gnomebase gsettings features_check gettext
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "bf26c966b8a8b7f3285ecc8bb3e467b9c20f9535b94dc451c9c559ddcff61925"
-SRC_URI += " \
-    file://0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch \
-    file://musl.patch \
-"
-
-PACKAGECONFIG ??= "ssh-agent"
-PACKAGECONFIG[ssh-agent] = "--enable-ssh-agent --with-ssh-agent-path=${bindir}/ssh-agent --with-ssh-add-path=${bindir}/ssh-add,--disable-ssh-agent,,openssh-misc"
-
-EXTRA_OECONF = " \
-    --disable-doc \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)} \
-"
-
-FILES:${PN} += " \
-    ${datadir}/dbus-1/services \
-    ${datadir}/p11-kit \
-    ${datadir}/xdg-desktop-portal \
-    ${base_libdir}/security/*${SOLIBSDEV} \
-    ${libdir}/pkcs11/gnome-keyring-pkcs11.so \
-    ${systemd_user_unitdir} \
-"
-# fix | gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
-pkg_postinst:${PN} () {
-    setcap cap_ipc_lock+ep $D/${bindir}/gnome-keyring-daemon
-}
-PACKAGE_WRITE_DEPS += "libcap-native"
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_50.0.bb b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_50.0.bb
new file mode 100644
index 0000000000..215397ffd3
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_50.0.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Password and keyring managing daemon"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome"
+
+LICENSE = "GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+CVE_PRODUCT = "gnome-keyring gnome_keyring"
+
+DEPENDS = " \
+    glib-2.0-native \
+    gcr3 \
+    libgcrypt \
+    p11-kit \
+"
+
+inherit gnomebase gsettings gettext
+
+SRC_URI[archive.sha256sum] = "cbd72062c53c9702bc2c4733991ad5f051ca682882b30905a2829bcf1a8ecc7c"
+SRC_URI += "file://0001-meson-allow-setting-the-paths-to-ssh-agent-and-ssh-add-by-option.patch"
+
+PACKAGECONFIG ??= " \
+    libcap-ng \
+    ssh-agent \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'pam selinux systemd', d)} \
+"
+PACKAGECONFIG[libcap-ng] = "-Dlibcap-ng=enabled,-Dlibcap-ng=disabled,libcap-ng"
+PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
+PACKAGECONFIG[ssh-agent] = "-Dssh-agent=true -Dssh-agent-path=${bindir}/ssh-agent -Dssh-add-path=${bindir}/ssh-add,-Dssh-agent=false,,openssh-misc"
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
+
+EXTRA_OEMESON = " \
+    -Dmanpage=false \
+    -Dpkcs11-config=${datadir}/p11-kit/modules \
+    -Dpkcs11-modules=${libdir}/pkcs11 \
+"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1/services \
+    ${datadir}/p11-kit \
+    ${datadir}/xdg-desktop-portal \
+    ${libdir}/security/*${SOLIBSDEV} \
+    ${libdir}/pkcs11/gnome-keyring-pkcs11.so \
+    ${systemd_user_unitdir} \
+"
+# fix | gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
+pkg_postinst:${PN} () {
+    setcap cap_ipc_lock+ep $D/${bindir}/gnome-keyring-daemon
+}
+PACKAGE_WRITE_DEPS += "libcap-native"
