Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes
Khem Raj <[email protected]>
| Newsgroups | org.openembedded.lists.openembedded-devel |
|---|---|
| Message-ID | <CAMKF1srwt1jwqqCsvqOuO+2BpZsADa7N0R7Sz10HOctHaiCsUg@mail.gmail.com> |
Can we do something like
inherit_defer ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'useradd',
'', d)}
On Tue, Aug 11, 2026 at 12:25 AM James Lee via lists.openembedded.org
<[email protected]> wrote:
> The current mctp recipe relies on the upstream's conditional build and
> install of the mctpd binary if systemd is present, only building the
> mctp utility otherwise. Future upstream changes allowing running as
> non-root require more control over the build process. We will need to
> add a new system user when mctpd is built.
>
> Adding a user requires inheriting useradd, which assumes at least one
> user will be created, failing the recipe otherwise. Building without
> mctpd would then cause the recipe to fail as conditionally inheriting
> useradd seems infeasible.
>
> To make useradd available for the new upstream release, split the recipe
> into "mctp" for the utilities and "mctpd" for the daemon, isolating the
> systemd dependency to "mctpd".
>
> This makes the two parts of the source explicitly selectable from user
> choice, rather than auto-detecting based on the presence of systemd. It
> will also let us express the useradd rules only when they're needed for
> the mctpd installation in the upcoming version bump.
>
> Signed-off-by: James Lee [email protected]
> ---
> meta-networking/recipes-support/mctp/mctp.inc | 11 +++++
> .../recipes-support/mctp/mctp_2.5.bb | 46 ++-----------------
> .../recipes-support/mctp/mctpd_2.5.bb | 28 +++++++++++
> 3 files changed, 42 insertions(+), 43 deletions(-)
> create mode 100644 meta-networking/recipes-support/mctp/mctp.inc
> create mode 100644 meta-networking/recipes-support/mctp/mctpd_2.5.bb
>
> diff --git a/meta-networking/recipes-support/mctp/mctp.inc
> b/meta-networking/recipes-support/mctp/mctp.inc
> new file mode 100644
> index 0000000000..98225cffea
> --- /dev/null
> +++ b/meta-networking/recipes-support/mctp/mctp.inc
> @@ -0,0 +1,11 @@
> +HOMEPAGE = "http://www.github.com/CodeConstruct/mctp"
> +SECTION = "net"
> +LICENSE = "GPL-2.0-only"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21"
> +
> +SRC_URI = "git://
> github.com/CodeConstruct/mctp;branch=main;protocol=https;tag=v${PV}
> <http://github.com/CodeConstruct/mctp;branch=main;protocol=https;tag=v$%7BPV%7D>
> "
> +SRCREV = "07c7a5d526f686da89bc9ae9cad917e46652b272"
> +
> +inherit meson pkgconfig
> +
> +EXTRA_OEMESON = "-Dtests=false"
> diff --git a/meta-networking/recipes-support/mctp/mctp_2.5.bb
> b/meta-networking/recipes-support/mctp/mctp_2.5.bb
> index a8787d3f2b..5811495c66 100644
> --- a/meta-networking/recipes-support/mctp/mctp_2.5.bb
> +++ b/meta-networking/recipes-support/mctp/mctp_2.5.bb
> @@ -1,45 +1,5 @@
> -SUMMARY = "Management Component Control Protocol utilities"
> -HOMEPAGE = "http://www.github.com/CodeConstruct/mctp"
> -SECTION = "net"
> -LICENSE = "GPL-2.0-only"
> +require mctp.inc
>
> -LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21"
> +SUMMARY = "Management Component Transport Protocol (MCTP) utilities"
>
> -SRCREV = "07c7a5d526f686da89bc9ae9cad917e46652b272"
> -
> -SRC_URI = "git://
> github.com/CodeConstruct/mctp;branch=main;protocol=https;tag=v${PV}
> <http://github.com/CodeConstruct/mctp;branch=main;protocol=https;tag=v$%7BPV%7D>
> "
> -
> -
> -inherit meson pkgconfig systemd
> -
> -EXTRA_OEMESON = " \
> - -Dtests=false \
> -"
> -
> -PACKAGECONFIG ??= " \
> - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
> -"
> -
> -# mctpd will only be built if pkg-config detects libsystemd; in which case
> -# we'll want to declare the dep and install the service.
> -PACKAGECONFIG[systemd] = ",,systemd,libsystemd"
> -SYSTEMD_SERVICE:${PN} = "mctpd.service mctp.target mctp-local.target"
> -SYSTEMD_AUTO_ENABLE:${PN} = "enable"
> -
> -do_install:append () {
> - if ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'true', 'false',
> d)}; then
> - install -d ${D}${systemd_system_unitdir}
> - install -m 0644 ${S}/conf/mctpd.service \
> - ${D}${systemd_system_unitdir}/mctpd.service
> - install -m 0644 ${S}/conf/*.target \
> - ${D}${systemd_system_unitdir}/
> - install -d ${D}${datadir}/dbus-1/system.d
> - install -m 0644 ${S}/conf/mctpd-dbus.conf \
> - ${D}${datadir}/dbus-1/system.d/mctpd.conf
> - fi
> -}
> -
> -FILES:${PN} += " \
> - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \
> - '${datadir}/dbus-1/system.d/mctpd.conf', '', d)} \
> -"
> +MESON_TARGET = "mctp mctp-client"
> diff --git a/meta-networking/recipes-support/mctp/mctpd_2.5.bb
> b/meta-networking/recipes-support/mctp/mctpd_2.5.bb
> new file mode 100644
> index 0000000000..f049be646b
> --- /dev/null
> +++ b/meta-networking/recipes-support/mctp/mctpd_2.5.bb
> @@ -0,0 +1,28 @@
> +require mctp.inc
> +
> +SUMMARY = "Management Component Transport Protocol (MCTP) control
> protocol daemon"
> +
> +inherit systemd
> +
> +do_install:append () {
> + install -d ${D}${systemd_system_unitdir}
> + install -m 0644 ${S}/conf/mctpd.service \
> + ${D}${systemd_system_unitdir}/mctpd.service
> + install -m 0644 ${S}/conf/*.target \
> + ${D}${systemd_system_unitdir}/
> + install -d ${D}${datadir}/dbus-1/system.d
> + install -m 0644 ${S}/conf/mctpd-dbus.conf \
> + ${D}${datadir}/dbus-1/system.d/mctpd.conf
> +}
> +
> +SYSTEMD_SERVICE:${PN} = "mctpd.service mctp.target mctp-local.target"
> +
> +DEPENDS += "systemd"
> +
> +# Meson adds mctp utility binaries to FILES and do_install(), which
> cannot be
> +# overriden by MESON_TARGET. Override FILES and remove binaries to
> correct.
> +FILES:${PN} = "${datadir}/dbus-1/system.d/mctpd.conf ${sbindir}/mctpd"
> +
> +do_install:append () {
> + rm -r ${D}${bindir}
> +}
> --
> 2.47.3
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#128922):
> https://lists.openembedded.org/g/openembedded-devel/message/128922
> Mute This Topic: https://lists.openembedded.org/mt/120698532/1997914
> Group Owner: [email protected]
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> [email protected]]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>