* [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes @ 2026-08-11 7:25 James Lee 2026-08-11 7:25 ` [oe] [meta-networking] [PATCH v2 2/2] mctp: upgrade 2.5 -> 2.6 James Lee 2026-08-13 13:53 ` [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes Khem Raj 0 siblings, 2 replies; 10+ messages in thread From: James Lee @ 2026-08-11 7:25 UTC (permalink / raw) To: openembedded-devel; +Cc: andrew, jk 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 james@codeconstruct.com.au --- 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}" +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}" - - -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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [oe] [meta-networking] [PATCH v2 2/2] mctp: upgrade 2.5 -> 2.6 2026-08-11 7:25 [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes James Lee @ 2026-08-11 7:25 ` James Lee 2026-08-13 13:56 ` Khem Raj 2026-08-13 13:53 ` [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes Khem Raj 1 sibling, 1 reply; 10+ messages in thread From: James Lee @ 2026-08-11 7:25 UTC (permalink / raw) To: openembedded-devel; +Cc: andrew, jk Bumped mctp and mctp-daemon version to 2.6, and added the new system user to own mctpd's service. Signed-off-by: James Lee <james@codeconstruct.com.au> --- meta-networking/recipes-support/mctp/mctp.inc | 2 +- .../recipes-support/mctp/{mctp_2.5.bb => mctp_2.6.bb} | 0 .../recipes-support/mctp/{mctpd_2.5.bb => mctpd_2.6.bb} | 5 ++++- 3 files changed, 5 insertions(+), 2 deletions(-) rename meta-networking/recipes-support/mctp/{mctp_2.5.bb => mctp_2.6.bb} (100%) rename meta-networking/recipes-support/mctp/{mctpd_2.5.bb => mctpd_2.6.bb} (89%) diff --git a/meta-networking/recipes-support/mctp/mctp.inc b/meta-networking/recipes-support/mctp/mctp.inc index 98225cffea..c8fc98f63a 100644 --- a/meta-networking/recipes-support/mctp/mctp.inc +++ b/meta-networking/recipes-support/mctp/mctp.inc @@ -4,7 +4,7 @@ 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}" -SRCREV = "07c7a5d526f686da89bc9ae9cad917e46652b272" +SRCREV = "31ac0e86b0e23d32abf34d191653a87a47f3c9a7" inherit meson pkgconfig diff --git a/meta-networking/recipes-support/mctp/mctp_2.5.bb b/meta-networking/recipes-support/mctp/mctp_2.6.bb similarity index 100% rename from meta-networking/recipes-support/mctp/mctp_2.5.bb rename to meta-networking/recipes-support/mctp/mctp_2.6.bb diff --git a/meta-networking/recipes-support/mctp/mctpd_2.5.bb b/meta-networking/recipes-support/mctp/mctpd_2.6.bb similarity index 89% rename from meta-networking/recipes-support/mctp/mctpd_2.5.bb rename to meta-networking/recipes-support/mctp/mctpd_2.6.bb index f049be646b..f4c5bb976c 100644 --- a/meta-networking/recipes-support/mctp/mctpd_2.5.bb +++ b/meta-networking/recipes-support/mctp/mctpd_2.6.bb @@ -2,7 +2,7 @@ require mctp.inc SUMMARY = "Management Component Transport Protocol (MCTP) control protocol daemon" -inherit systemd +inherit systemd useradd do_install:append () { install -d ${D}${systemd_system_unitdir} @@ -17,6 +17,9 @@ do_install:append () { SYSTEMD_SERVICE:${PN} = "mctpd.service mctp.target mctp-local.target" +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "-r -U -s /bin/false mctpd" + DEPENDS += "systemd" # Meson adds mctp utility binaries to FILES and do_install(), which cannot be -- 2.47.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 2/2] mctp: upgrade 2.5 -> 2.6 2026-08-11 7:25 ` [oe] [meta-networking] [PATCH v2 2/2] mctp: upgrade 2.5 -> 2.6 James Lee @ 2026-08-13 13:56 ` Khem Raj 0 siblings, 0 replies; 10+ messages in thread From: Khem Raj @ 2026-08-13 13:56 UTC (permalink / raw) To: james; +Cc: openembedded-devel, andrew, jk [-- Attachment #1: Type: text/plain, Size: 4423 bytes --] this has to be made specific to systemd distros alone otherwise we endup with Consider defining a PREFERRED_PROVIDER entry to match virtual/freeglut ERROR: Nothing PROVIDES 'systemd' (but /srv/pokybuild/yocto-worker/meta-oe/build/meta-openembedded/meta-networking/recipes-support/mctp/mctpd_2.6.bb DEPENDS on or otherwise requires it) systemd was skipped: using DISTRO 'poky', which is missing required DISTRO_FEATURES: 'usrmerge systemd' NOTE: Multiple providers are available for runtime libnss-mdns (avahi-libnss-mdns, mdns) Consider defining a PREFERRED_RPROVIDER entry to match libnss-mdns ERROR: Nothing RPROVIDES 'mctpd' (but /srv/pokybuild/yocto-worker/meta-oe/build/meta-openembedded/meta-networking/recipes-support/mctp/mctpd_2.6.bb RDEPENDS on or otherwise requires it) No eligible RPROVIDERs exist for 'mctpd' NOTE: Runtime target 'mctpd' is unbuildable, removing... Missing or unbuildable dependency chain was: ['mctpd'] ERROR: Nothing RPROVIDES 'mctpd-dev' (but /srv/pokybuild/yocto-worker/meta-oe/build/meta-openembedded/meta-networking/recipes-support/mctp/mctpd_2.6.bb RDEPENDS on or otherwise requires it) No eligible RPROVIDERs exist for 'mctpd-dev' On Tue, Aug 11, 2026 at 12:25 AM James Lee via lists.openembedded.org <james=codeconstruct.com.au@lists.openembedded.org> wrote: > Bumped mctp and mctp-daemon version to 2.6, and added the new system > user to own mctpd's service. > > Signed-off-by: James Lee <james@codeconstruct.com.au> > --- > meta-networking/recipes-support/mctp/mctp.inc | 2 +- > .../recipes-support/mctp/{mctp_2.5.bb => mctp_2.6.bb} | 0 > .../recipes-support/mctp/{mctpd_2.5.bb => mctpd_2.6.bb} | 5 ++++- > 3 files changed, 5 insertions(+), 2 deletions(-) > rename meta-networking/recipes-support/mctp/{mctp_2.5.bb => mctp_2.6.bb} > (100%) > rename meta-networking/recipes-support/mctp/{mctpd_2.5.bb => mctpd_2.6.bb} > (89%) > > diff --git a/meta-networking/recipes-support/mctp/mctp.inc > b/meta-networking/recipes-support/mctp/mctp.inc > index 98225cffea..c8fc98f63a 100644 > --- a/meta-networking/recipes-support/mctp/mctp.inc > +++ b/meta-networking/recipes-support/mctp/mctp.inc > @@ -4,7 +4,7 @@ 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" > +SRCREV = "31ac0e86b0e23d32abf34d191653a87a47f3c9a7" > > inherit meson pkgconfig > > diff --git a/meta-networking/recipes-support/mctp/mctp_2.5.bb > b/meta-networking/recipes-support/mctp/mctp_2.6.bb > similarity index 100% > rename from meta-networking/recipes-support/mctp/mctp_2.5.bb > rename to meta-networking/recipes-support/mctp/mctp_2.6.bb > diff --git a/meta-networking/recipes-support/mctp/mctpd_2.5.bb > b/meta-networking/recipes-support/mctp/mctpd_2.6.bb > similarity index 89% > rename from meta-networking/recipes-support/mctp/mctpd_2.5.bb > rename to meta-networking/recipes-support/mctp/mctpd_2.6.bb > index f049be646b..f4c5bb976c 100644 > --- a/meta-networking/recipes-support/mctp/mctpd_2.5.bb > +++ b/meta-networking/recipes-support/mctp/mctpd_2.6.bb > @@ -2,7 +2,7 @@ require mctp.inc > > SUMMARY = "Management Component Transport Protocol (MCTP) control > protocol daemon" > > -inherit systemd > +inherit systemd useradd > > do_install:append () { > install -d ${D}${systemd_system_unitdir} > @@ -17,6 +17,9 @@ do_install:append () { > > SYSTEMD_SERVICE:${PN} = "mctpd.service mctp.target mctp-local.target" > > +USERADD_PACKAGES = "${PN}" > +USERADD_PARAM:${PN} = "-r -U -s /bin/false mctpd" > + > DEPENDS += "systemd" > > # Meson adds mctp utility binaries to FILES and do_install(), which > cannot be > -- > 2.47.3 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#128923): > https://lists.openembedded.org/g/openembedded-devel/message/128923 > Mute This Topic: https://lists.openembedded.org/mt/120698533/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > > [-- Attachment #2: Type: text/html, Size: 7059 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-11 7:25 [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes James Lee 2026-08-11 7:25 ` [oe] [meta-networking] [PATCH v2 2/2] mctp: upgrade 2.5 -> 2.6 James Lee @ 2026-08-13 13:53 ` Khem Raj 2026-08-14 4:14 ` James Lee 1 sibling, 1 reply; 10+ messages in thread From: Khem Raj @ 2026-08-13 13:53 UTC (permalink / raw) To: james; +Cc: openembedded-devel, andrew, jk [-- Attachment #1: Type: text/plain, Size: 6480 bytes --] 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 <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > --- > 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: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > > [-- Attachment #2: Type: text/html, Size: 9078 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-13 13:53 ` [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes Khem Raj @ 2026-08-14 4:14 ` James Lee 2026-08-14 4:45 ` Khem Raj 0 siblings, 1 reply; 10+ messages in thread From: James Lee @ 2026-08-14 4:14 UTC (permalink / raw) To: Khem Raj; +Cc: openembedded-devel, andrew, jk I believe that would work, but think it's important to have a clear split at this point. The mctp utilities and mctpd daemon have different use-cases and dependencies, and do not depend on each other. The split allows users to install the mctp utilities on systemd distros without automatically adding the daemon. It also makes it clear that the mctp package does not depend on systemd or useradd. On Thu, 2026-08-13 at 06:53 -0700, Khem Raj wrote: > 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 > <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > > --- > > 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}" > > +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}" > > - > > - > > -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} > > +} ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-14 4:14 ` James Lee @ 2026-08-14 4:45 ` Khem Raj 2026-08-14 4:53 ` James Lee 0 siblings, 1 reply; 10+ messages in thread From: Khem Raj @ 2026-08-14 4:45 UTC (permalink / raw) To: James Lee; +Cc: openembedded-devel, andrew, jk [-- Attachment #1: Type: text/plain, Size: 7267 bytes --] On Thu, Aug 13, 2026 at 9:14 PM James Lee <james@codeconstruct.com.au> wrote: > I believe that would work, but think it's important to have a clear > split at this point. > > The mctp utilities and mctpd daemon have different use-cases and > dependencies, and do not depend on each other. The split allows users > to install the mctp utilities on systemd distros without automatically > adding the daemon. It also makes it clear that the mctp package does > not depend on systemd or useradd. > The output can be packaged to be more granular such that daemon goes into package of its own, would that work ? > > On Thu, 2026-08-13 at 06:53 -0700, Khem Raj wrote: > > 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 > > <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > > > --- > > > 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}" > > > +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}" > > > - > > > - > > > -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} > > > +} > [-- Attachment #2: Type: text/html, Size: 10964 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-14 4:45 ` Khem Raj @ 2026-08-14 4:53 ` James Lee 2026-08-14 5:15 ` Khem Raj 0 siblings, 1 reply; 10+ messages in thread From: James Lee @ 2026-08-14 4:53 UTC (permalink / raw) To: Khem Raj; +Cc: openembedded-devel, andrew, jk On Thu, 2026-08-13 at 21:45 -0700, Khem Raj wrote: > > > On Thu, Aug 13, 2026 at 9:14 PM James Lee > <james@codeconstruct.com.au> wrote: > > I believe that would work, but think it's important to have a clear > > split at this point. > > > > The mctp utilities and mctpd daemon have different use-cases and > > dependencies, and do not depend on each other. The split allows > > users > > to install the mctp utilities on systemd distros without > > automatically > > adding the daemon. It also makes it clear that the mctp package > > does > > not depend on systemd or useradd. > > > > > The output can be packaged to be more granular such that daemon goes > into > package of its own, would that work ? > I believe that would break the inherit_defer approach? > > > > On Thu, 2026-08-13 at 06:53 -0700, Khem Raj wrote: > > > 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 > > > <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > > > > --- > > > > 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}" > > > > +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}" > > > > - > > > > - > > > > -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} > > > > +} ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-14 4:53 ` James Lee @ 2026-08-14 5:15 ` Khem Raj 2026-08-14 5:22 ` James Lee 0 siblings, 1 reply; 10+ messages in thread From: Khem Raj @ 2026-08-14 5:15 UTC (permalink / raw) To: James Lee; +Cc: openembedded-devel, andrew, jk [-- Attachment #1: Type: text/plain, Size: 8532 bytes --] On Thu, Aug 13, 2026 at 9:53 PM James Lee <james@codeconstruct.com.au> wrote: > On Thu, 2026-08-13 at 21:45 -0700, Khem Raj wrote: > > > > > > On Thu, Aug 13, 2026 at 9:14 PM James Lee > > <james@codeconstruct.com.au> wrote: > > > I believe that would work, but think it's important to have a clear > > > split at this point. > > > > > > The mctp utilities and mctpd daemon have different use-cases and > > > dependencies, and do not depend on each other. The split allows > > > users > > > to install the mctp utilities on systemd distros without > > > automatically > > > adding the daemon. It also makes it clear that the mctp package > > > does > > > not depend on systemd or useradd. > > > > > > > > > The output can be packaged to be more granular such that daemon goes > > into > > package of its own, would that work ? > > > > I believe that would break the inherit_defer approach? > Cant be sure. Looking forward to you experiment with it :) > > > > > > > On Thu, 2026-08-13 at 06:53 -0700, Khem Raj wrote: > > > > 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 > > > > <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > > > > > --- > > > > > 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}" > > > > > +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}" > > > > > - > > > > > - > > > > > -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} > > > > > +} > [-- Attachment #2: Type: text/html, Size: 13725 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-14 5:15 ` Khem Raj @ 2026-08-14 5:22 ` James Lee 2026-08-14 5:42 ` Khem Raj 0 siblings, 1 reply; 10+ messages in thread From: James Lee @ 2026-08-14 5:22 UTC (permalink / raw) To: Khem Raj; +Cc: openembedded-devel, andrew, jk On Thu, 2026-08-13 at 22:15 -0700, Khem Raj wrote: > > > On Thu, Aug 13, 2026 at 9:53 PM James Lee > <james@codeconstruct.com.au> wrote: > > On Thu, 2026-08-13 at 21:45 -0700, Khem Raj wrote: > > > > > > > > > On Thu, Aug 13, 2026 at 9:14 PM James Lee > > > <james@codeconstruct.com.au> wrote: > > > > I believe that would work, but think it's important to have a > > > > clear > > > > split at this point. > > > > > > > > The mctp utilities and mctpd daemon have different use-cases > > > > and > > > > dependencies, and do not depend on each other. The split allows > > > > users > > > > to install the mctp utilities on systemd distros without > > > > automatically > > > > adding the daemon. It also makes it clear that the mctp package > > > > does > > > > not depend on systemd or useradd. > > > > > > > > > > > > > The output can be packaged to be more granular such that daemon > > > goes > > > into > > > package of its own, would that work ? > > > > > > > I believe that would break the inherit_defer approach? > > > > > Cant be sure. Looking forward to you experiment with it :) > To be clear, I have experimented with this approach and didn't find a way to detect which packages are being installed with the library functions. Splitting into two recipes was the fallback option. If you know of any way it could be done, the help would be appreciated. > > > > > > > > > > On Thu, 2026-08-13 at 06:53 -0700, Khem Raj wrote: > > > > > 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 > > > > > <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > > > > > > --- > > > > > > 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=h > > > > > > ttps > > > > > > ;tag > > > > > > =v${PV}" > > > > > > +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=h > > > > > > ttps > > > > > > ;tag > > > > > > =v${PV}" > > > > > > - > > > > > > - > > > > > > -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} > > > > > > +} ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes 2026-08-14 5:22 ` James Lee @ 2026-08-14 5:42 ` Khem Raj 0 siblings, 0 replies; 10+ messages in thread From: Khem Raj @ 2026-08-14 5:42 UTC (permalink / raw) To: James Lee; +Cc: openembedded-devel, andrew, jk [-- Attachment #1: Type: text/plain, Size: 10236 bytes --] On Thu, Aug 13, 2026 at 10:22 PM James Lee <james@codeconstruct.com.au> wrote: > On Thu, 2026-08-13 at 22:15 -0700, Khem Raj wrote: > > > > > > On Thu, Aug 13, 2026 at 9:53 PM James Lee > > <james@codeconstruct.com.au> wrote: > > > On Thu, 2026-08-13 at 21:45 -0700, Khem Raj wrote: > > > > > > > > > > > > On Thu, Aug 13, 2026 at 9:14 PM James Lee > > > > <james@codeconstruct.com.au> wrote: > > > > > I believe that would work, but think it's important to have a > > > > > clear > > > > > split at this point. > > > > > > > > > > The mctp utilities and mctpd daemon have different use-cases > > > > > and > > > > > dependencies, and do not depend on each other. The split allows > > > > > users > > > > > to install the mctp utilities on systemd distros without > > > > > automatically > > > > > adding the daemon. It also makes it clear that the mctp package > > > > > does > > > > > not depend on systemd or useradd. > > > > > > > > > > > > > > > > > The output can be packaged to be more granular such that daemon > > > > goes > > > > into > > > > package of its own, would that work ? > > > > > > > > > > I believe that would break the inherit_defer approach? > > > > > > > > > Cant be sure. Looking forward to you experiment with it :) > > > > To be clear, I have experimented with this approach and didn't find a > way to detect which packages are being installed with the library > functions. Splitting into two recipes was the fallback option. > > If you know of any way it could be done, the help would be appreciated. > OK, then fix the build issues found with distro without systemd eg. poky > > > > > > > > > > > > > > On Thu, 2026-08-13 at 06:53 -0700, Khem Raj wrote: > > > > > > 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 > > > > > > <james=codeconstruct.com.au@lists.openembedded.org> 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 james@codeconstruct.com.au > > > > > > > --- > > > > > > > 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=h > > > > > > > ttps > > > > > > > ;tag > > > > > > > =v${PV}" > > > > > > > +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=h > > > > > > > ttps > > > > > > > ;tag > > > > > > > =v${PV}" > > > > > > > - > > > > > > > - > > > > > > > -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} > > > > > > > +} > [-- Attachment #2: Type: text/html, Size: 17285 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-08-14 5:42 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-08-11 7:25 [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes James Lee 2026-08-11 7:25 ` [oe] [meta-networking] [PATCH v2 2/2] mctp: upgrade 2.5 -> 2.6 James Lee 2026-08-13 13:56 ` Khem Raj 2026-08-13 13:53 ` [oe] [meta-networking] [PATCH v2 1/2] mctp: split mctp tools and mctpd into separate recipes Khem Raj 2026-08-14 4:14 ` James Lee 2026-08-14 4:45 ` Khem Raj 2026-08-14 4:53 ` James Lee 2026-08-14 5:15 ` Khem Raj 2026-08-14 5:22 ` James Lee 2026-08-14 5:42 ` Khem Raj
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.