summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGregor <danmcgr@protonmail.com>2026-03-16 16:30:13 -0600
committerKhem Raj <raj.khem@gmail.com>2026-03-18 14:33:29 -0700
commit3792b7902a42bbacb2c2c3f7446f0bb333a698ce (patch)
treeb955f66507afc5dc59f45efba4e6ae59502f67c6
parente585da399f852f71851ab43ad1e24e7fbf5f898d (diff)
downloadmeta-openembedded-3792b7902a42bbacb2c2c3f7446f0bb333a698ce.tar.gz
libfido2-initial: new recipe
Use this recipe to break a circular dependency between libfido2 and systemd when systemd's fido PACKAGECONFIG is enabled. systemd depends on libfido2, and libfido2 depends on udev provided by systemd. However, systemd only depends on the headers provided by libfido2 and its pkgconf data. systemd uses only the datatypes provided, and opportunistically enables fido support if libfido2 is found. This recipe provides only the headers and pkgconf data. This is sufficient to allow systemd to build support for libfido2. It only works with a related change I've submitted to openembedded core. Signed-off-by: Dan McGregor <danmcgr@protonmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-support/libfido2/libfido2-initial_1.16.0.bb40
1 files changed, 40 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/libfido2/libfido2-initial_1.16.0.bb b/meta-oe/recipes-support/libfido2/libfido2-initial_1.16.0.bb
new file mode 100644
index 0000000000..7d9838b003
--- /dev/null
+++ b/meta-oe/recipes-support/libfido2/libfido2-initial_1.16.0.bb
@@ -0,0 +1,40 @@
1SUMMARY = "FIDO 2.0 support library"
2DESCRIPTION = "libfido2 provides library functionality and command-line tools to \
3communicate with a FIDO device over USB, and to verify attestation and \
4assertion signatures."
5HOMEPAGE = "https://developers.yubico.com/libfido2"
6LICENSE = "BSD-2-Clause"
7SECTION = "libs/network"
8
9LIC_FILES_CHKSUM = "file://LICENSE;md5=20be19aaa222f71738712b26f7f8717b"
10
11SRC_URI = "https://developers.yubico.com/${BPN}/Releases/${BPN}-${PV}.tar.gz"
12SRC_URI[sha256sum] = "8c2b6fb279b5b42e9ac92ade71832e485852647b53607c43baaafbbcecea04e4"
13
14inherit nopackages
15
16PACKAGES = ""
17
18# The purpose of this recipe is to break a circular dependency between libfido2 and
19# systemd. libfido2 depends on udev (provided by systemd) to build, while systemd
20# depends on libfido2 if the fido feature is enabled. However, systemd doesn't
21# actually link against libfido2. It only needs the headers in place and a dummy
22# shared library. It opportunistically dlopens libfido2 if it's present, but
23# for that to work it needs the headers in place.
24# Just fake enough to make systemd happy, and have it RRECOMMEND the real libfido2.
25do_install() {
26 mkdir -p ${D}${includedir}/libfido2-initial/fido
27 mkdir -p ${D}${datadir}/pkgconfig
28
29 install -m 644 ${S}/src/fido.h ${D}${includedir}/libfido2-initial
30 install -m 644 ${S}/src/fido/* ${D}${includedir}/libfido2-initial/fido/
31
32 # Real libfido2 installs its pkg conf file in ${libdir}.
33 sed -e 's,@CMAKE_INSTALL_PREFIX@,${exec_prefix},' \
34 -e 's,@CMAKE_INSTALL_LIBDIR@,${baselib}/libfido2-initial,' \
35 -e 's,@FIDO_VERSION@,${PV},' \
36 -e 's,@PROJECT_NAME@,${BPN},' \
37 -e '/^Cflags/s,$,/libfido2-initial,' \
38 ${S}/src/libfido2.pc.in > ${D}${datadir}/pkgconfig/libfido2.pc
39
40}