Please rebase it on top of master-next and resend.

On Mon, Mar 16, 2026 at 12:23 PM Dan McGregor via lists.openembedded.org
<[email protected]> wrote:

> From: Dan McGregor <[email protected]>
>
> 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 <[email protected]>
> ---
>  .../libfido2/libfido2-initial_1.16.0.bb       | 40 +++++++++++++++++++
>  1 file changed, 40 insertions(+)
>  create mode 100644 meta-oe/recipes-support/libfido2/
> libfido2-initial_1.16.0.bb
>
> 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 00000000000..7d9838b003b
> --- /dev/null
> +++ b/meta-oe/recipes-support/libfido2/libfido2-initial_1.16.0.bb
> @@ -0,0 +1,40 @@
> +SUMMARY = "FIDO 2.0 support library"
> +DESCRIPTION = "libfido2 provides library functionality and command-line
> tools to \
> +communicate with a FIDO device over USB, and to verify attestation and \
> +assertion signatures."
> +HOMEPAGE = "https://developers.yubico.com/libfido2";
> +LICENSE = "BSD-2-Clause"
> +SECTION = "libs/network"
> +
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=20be19aaa222f71738712b26f7f8717b"
> +
> +SRC_URI = "
> https://developers.yubico.com/${BPN}/Releases/${BPN}-${PV}.tar.gz";
> +SRC_URI[sha256sum] =
> "8c2b6fb279b5b42e9ac92ade71832e485852647b53607c43baaafbbcecea04e4"
> +
> +inherit nopackages
> +
> +PACKAGES = ""
> +
> +# The purpose of this recipe is to break a circular dependency between
> libfido2 and
> +# systemd. libfido2 depends on udev (provided by systemd) to build, while
> systemd
> +# depends on libfido2 if the fido feature is enabled. However, systemd
> doesn't
> +# actually link against libfido2. It only needs the headers in place and
> a dummy
> +# shared library. It opportunistically dlopens libfido2 if it's present,
> but
> +# for that to work it needs the headers in place.
> +# Just fake enough to make systemd happy, and have it RRECOMMEND the real
> libfido2.
> +do_install() {
> +    mkdir -p ${D}${includedir}/libfido2-initial/fido
> +    mkdir -p ${D}${datadir}/pkgconfig
> +
> +    install -m 644 ${S}/src/fido.h ${D}${includedir}/libfido2-initial
> +    install -m 644 ${S}/src/fido/*
> ${D}${includedir}/libfido2-initial/fido/
> +
> +    # Real libfido2 installs its pkg conf file in ${libdir}.
> +    sed -e 's,@CMAKE_INSTALL_PREFIX@,${exec_prefix},' \
> +        -e 's,@CMAKE_INSTALL_LIBDIR@,${baselib}/libfido2-initial,' \
> +        -e 's,@FIDO_VERSION@,${PV},' \
> +        -e 's,@PROJECT_NAME@,${BPN},' \
> +        -e '/^Cflags/s,$,/libfido2-initial,' \
> +        ${S}/src/libfido2.pc.in > ${D}${datadir}/pkgconfig/libfido2.pc
> +
> +}
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#125292): 
https://lists.openembedded.org/g/openembedded-devel/message/125292
Mute This Topic: https://lists.openembedded.org/mt/118351906/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to