gnome-keyring: upgrade 46.2 -> 50.0

gnome-keyring switched from autotools to meson in 48.alpha, so the
recipe is converted to the gnomebase meson default.

The configure.ac patch for the ssh-agent and ssh-add paths is replaced
by an equivalent meson patch that adds ssh-agent-path and ssh-add-path
options, because find_program() cannot locate target executables in
the sysroot. The musl patch is dropped, sys/select.h is included
upstream since 48.

Other changes:
- gcr-ui-3 is no longer used, so the gtk+3 dependency and the
  GTK3DISTROFEATURES check go away.
- libcap-ng, pam, selinux and systemd are now explicit PACKAGECONFIGs
  instead of being auto-detected from whatever is in the sysroot.
  libcap-ng was picked up implicitly before and stays enabled.
- The PKCS#11 module and config directories are passed explicitly
  instead of being read from the p11-kit pkg-config file.
- Man pages need xsltproc and docbook and are disabled like the docs
  were before.

Build tested on corei7-64, the packaged file list is unchanged.

AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Markus Volk authored and Khem Raj committed 2026-09-08 08:23:16 -07:00
1 parent 1c4c37d21a
commit 7451030873
5 files changed
+132 -110

No files matched your search

@@ -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
@@ -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
@@ -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>
@@ -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"
@@ -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"