gcr: add recipe for gcr-4, needed to build with gtk4

(From OE-Core rev: 2dd272956f8a0450c998b584e27b75cfec00de22)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Volk
2022-12-09 15:11:15 +01:00
committed by Richard Purdie
parent 15bdcd1d59
commit 0dea8ef670
2 changed files with 106 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
From 9b67bb18d8409e0e693cc6000507acbd73a30eab Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Wed, 16 Nov 2022 11:27:24 +0100
Subject: [PATCH 1/2] meson.build: correctly handle disabled ssh_agent option
Existing code produces these errors:
| gcr/meson.build:61:0: ERROR: Unable to get the path of a not-found external program
| gcr/meson.build:101:5: ERROR: Unknown variable "ssh_add_path".
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Upstream-Status: Backport [ https://gitlab.gnome.org/GNOME/gcr/-/commit/9b67bb18d8409e0e693cc6000507acbd73a30eab ]
---
meson.build | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/meson.build b/meson.build
index 3f35173..11d7fa7 100644
--- a/meson.build
+++ b/meson.build
@@ -58,8 +58,10 @@ if p11_system_config_modules == ''
error('Couldn\'t find location for pkcs11 module config')
endif
libsecret_dep = dependency('libsecret-1', version: '>= 0.20', required: get_option('ssh_agent'))
-ssh_add_path = find_program('ssh-add', required: get_option('ssh_agent')).full_path()
-ssh_agent_path = find_program('ssh-agent', required: get_option('ssh_agent')).full_path()
+if get_option('ssh_agent')
+ ssh_add_path = find_program('ssh-add').full_path()
+ ssh_agent_path = find_program('ssh-agent').full_path()
+endif
with_systemd = false
libsystemd_deps = []
@@ -96,8 +98,10 @@ conf.set('HAVE_TIMEGM', cc.has_function('timegm'))
conf.set('HAVE_MLOCK', cc.has_function('mlock'))
conf.set_quoted('GPG_EXECUTABLE', gpg_path)
conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version())
-conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path)
-conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path)
+if get_option('ssh_agent')
+ conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path)
+ conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path)
+endif
conf.set10('WITH_SYSTEMD', with_systemd)
config_file = configure_file(
output: 'config.h',
--
2.34.1

View File

@@ -0,0 +1,57 @@
SUMMARY = "A library for bits of crypto UI and parsing etc"
DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
accessing key stores. It also provides the viewer for crypto files on the \
GNOME desktop."
HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'"
CFLAGS += "-D_GNU_SOURCE"
GNOMEBASEBUILDCLASS = "meson"
GTKDOC_MESON_OPTION = "gtk_doc"
inherit gnomebase gtk-icon-cache gi-docgen features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
UPSTREAM_CHECK_REGEX = "gcr-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
SRC_URI += "file://0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch"
SRC_URI[archive.sha256sum] = "c45855924f0ee7bab43e2dd38bfafd2ac815c6e9864341c0161e171173dcec7c"
PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \
"
PACKAGECONFIG[gtk] = "-Dgtk4=true,-Dgtk4=false,gtk4"
PACKAGECONFIG[ssh_agent] = "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh"
#'Use systemd socket activation for server programs'
PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
FILES:${PN} += " \
${datadir}/dbus-1 \
${datadir}/gcr-4 \
${systemd_user_unitdir}/gcr-ssh-agent.socket \
${systemd_user_unitdir}/gcr-ssh-agent.service \
"
# http://errors.yoctoproject.org/Errors/Details/20229/
ARM_INSTRUCTION_SET:armv4 = "arm"
ARM_INSTRUCTION_SET:armv5 = "arm"
ARM_INSTRUCTION_SET:armv6 = "arm"
EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross"
do_write_config:append() {
cat >${WORKDIR}/meson-${PN}.cross <<EOF
[binaries]
gpg2 = '${bindir}/gpg2'
ssh-add = '${bindir}/ssh-add'
ssh-agent = '${bindir}/ssh-agent'
EOF
}