From 1923f760bbf8ac7ed43f90d2e7df33faebe9afb8 Mon Sep 17 00:00:00 2001 From: Fiona Klute Date: Sat, 17 Oct 2026 16:00:27 +0200 Subject: [PATCH] package/p11-kit: switch to meson build system P11-kit has been offering a meson build since 0.23.17 (see upstream NEWS [1]), and it is the build system described in the upstream README. Changes in the switch to meson: * Explicitly enable/disable NLS. * Explicitly enable/disable bash-completion. * The meson build has no explicit option for libtasn1, it is required if trust_module is enabled. * Add patch for meson configuration to avoid depending on systemd to discover install location for units, which would create a dependency loop. * Check for BR2_INIT_SYSTEMD instead of BR2_PACKAGE_SYSTEMD to decide whether to install systemd units. [1] https://github.com/p11-glue/p11-kit/blob/0.26.5/NEWS#L164 Signed-off-by: Fiona Klute Signed-off-by: Julien Olivain --- ...ing-systemduserunitdir-to-break-depe.patch | 61 ++++++++++++++++ package/p11-kit/p11-kit.mk | 70 +++++++++++-------- 2 files changed, 100 insertions(+), 31 deletions(-) create mode 100644 package/p11-kit/0001-meson-allow-setting-systemduserunitdir-to-break-depe.patch diff --git a/package/p11-kit/0001-meson-allow-setting-systemduserunitdir-to-break-depe.patch b/package/p11-kit/0001-meson-allow-setting-systemduserunitdir-to-break-depe.patch new file mode 100644 index 0000000000..050bc3533b --- /dev/null +++ b/package/p11-kit/0001-meson-allow-setting-systemduserunitdir-to-break-depe.patch @@ -0,0 +1,61 @@ +From 709e37f781e50ef981d337249c574a9255691665 Mon Sep 17 00:00:00 2001 +From: Fiona Klute +Date: Sat, 17 Oct 2026 14:33:02 +0200 +Subject: [PATCH] meson: allow setting systemduserunitdir to break dependency + loop + +The dependency on systemd is only used to retrieve systemduserunitdir, +not otherwise needed during build. However, p11-kit is also an +(optional) dependency of systemd, creating a dependency loop. + +This patch allows setting systemduserunitdir directly to break the +dependency loop. If set, the given value is used unconditionally +without checking for systemd, otherwise systemd is detected as before. + +Signed-off-by: Fiona Klute +Upstream: https://github.com/p11-glue/p11-kit/pull/788 +--- + meson.build | 11 ++++++++--- + meson_options.txt | 4 ++++ + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/meson.build b/meson.build +index 38cf81b..9e76d62 100644 +--- a/meson.build ++++ b/meson.build +@@ -456,9 +456,14 @@ conf.set_quoted('TRUST_PATHS', trust_paths) + # systemd + + with_systemd = false +-systemd = dependency('systemd', required: get_option('systemd')) +-if systemd.found() +- systemduserunitdir = systemd.get_variable(pkgconfig : 'systemduserunitdir') ++systemduserunitdir = get_option('systemduserunitdir') ++if systemduserunitdir == '' ++ systemd = dependency('systemd', required: get_option('systemd')) ++ if systemd.found() ++ systemduserunitdir = systemd.get_variable(pkgconfig : 'systemduserunitdir') ++ with_systemd = true ++ endif ++else + with_systemd = true + endif + +diff --git a/meson_options.txt b/meson_options.txt +index c1f2362..a7c0553 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -46,6 +46,10 @@ option('systemd', type : 'feature', + value : 'auto', + description : 'Use systemd socket activation') + ++option('systemduserunitdir', type : 'string', ++ value : '', ++ description : 'Override default location for systemd user units') ++ + option('bashcompdir', type : 'string', + value : '', + description : 'Override default location for bash completion files') +-- +2.55.0 + diff --git a/package/p11-kit/p11-kit.mk b/package/p11-kit/p11-kit.mk index b3bb3e1263..17efff7b16 100644 --- a/package/p11-kit/p11-kit.mk +++ b/package/p11-kit/p11-kit.mk @@ -7,57 +7,65 @@ P11_KIT_VERSION = 0.26.5 P11_KIT_SOURCE = p11-kit-$(P11_KIT_VERSION).tar.xz P11_KIT_SITE = https://github.com/p11-glue/p11-kit/releases/download/$(P11_KIT_VERSION) +P11_KIT_DEPENDENCIES = host-pkgconf P11_KIT_INSTALL_STAGING = YES -P11_KIT_CONF_OPTS = --disable-static -P11_KIT_CONF_ENV = ac_cv_have_decl_program_invocation_short_name=yes \ - ac_cv_have_decl___progname=no P11_KIT_LICENSE = BSD-3-Clause P11_KIT_LICENSE_FILES = COPYING P11_KIT_CPE_ID_VALID = YES -# Needed because the pre-generated ./configure script has an old -# broken expansion of AC_HEADER_STDBOOL, which incorrectly detects -# that cannot be used, causing breakage down the road. -P11_KIT_AUTORECONF = YES -# Needed for autoreconf -P11_KIT_DEPENDENCIES = host-pkgconf + +P11_KIT_CONF_OPTS = -Dtest=false + +ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) +P11_KIT_CONF_OPTS += -Dnls=true +P11_KIT_DEPENDENCIES += $(TARGET_NLS_DEPENDENCIES) +else +P11_KIT_CONF_OPTS += -Dnls=false +endif ifeq ($(BR2_PACKAGE_LIBFFI),y) P11_KIT_DEPENDENCIES += host-pkgconf libffi -P11_KIT_CONF_OPTS += --with-libffi +P11_KIT_CONF_OPTS += -Dlibffi=enabled else -P11_KIT_CONF_OPTS += --without-libffi +P11_KIT_CONF_OPTS += -Dlibffi=disabled endif ifeq ($(BR2_PACKAGE_LIBTASN1),y) -P11_KIT_DEPENDENCIES += host-pkgconf libtasn1 -P11_KIT_CONF_OPTS += \ - --enable-trust-module \ - --with-libtasn1 +# host-libtasn1 is needed to provide asn1Parser +P11_KIT_DEPENDENCIES += host-pkgconf host-libtasn1 libtasn1 +P11_KIT_CONF_OPTS += -Dtrust_module=enabled ifeq ($(BR2_PACKAGE_CA_CERTIFICATES),y) -P11_KIT_CONF_OPTS += --with-trust-paths=/etc/ssl/certs/ca-certificates.crt +P11_KIT_CONF_OPTS += -Dtrust_paths=/etc/ssl/certs/ca-certificates.crt else -P11_KIT_CONF_OPTS += --without-trust-paths +P11_KIT_CONF_OPTS += -Dtrust_paths= endif else -P11_KIT_CONF_OPTS += \ - --disable-trust-module \ - --without-libtasn1 +P11_KIT_CONF_OPTS += -Dtrust_module=disabled endif -ifeq ($(BR2_PACKAGE_SYSTEMD),y) -P11_KIT_CONF_OPTS += --with-systemd +ifeq ($(BR2_INIT_SYSTEMD),y) +P11_KIT_CONF_OPTS += \ + -Dsystemd=enabled \ + -Dsystemduserunitdir=/usr/lib/systemd/user else -P11_KIT_CONF_OPTS += --without-systemd +P11_KIT_CONF_OPTS += -Dsystemd=disabled +endif + +ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) +P11_KIT_DEPENDENCIES += bash-completion +P11_KIT_CONF_OPTS += -Dbash_completion=enabled +else +P11_KIT_CONF_OPTS += -Dbash_completion=disabled endif HOST_P11_KIT_DEPENDENCIES = host-pkgconf - HOST_P11_KIT_CONF_OPTS = \ - --without-libffi \ - --without-trust-paths \ - --disable-trust-module \ - --without-libtasn1 \ - --without-systemd + -Dtest=false \ + -Dnls=false \ + -Dlibffi=disabled \ + -Dtrust_paths= \ + -Dtrust_module=disabled \ + -Dsystemd=disabled \ + -Dbash_completion=disabled -$(eval $(autotools-package)) -$(eval $(host-autotools-package)) +$(eval $(meson-package)) +$(eval $(host-meson-package))