diff mbox series

[meta-oe,2/3] dbus-broker: add ptest support

Message ID 20251127161711.2341194-2-skandigraun@gmail.com
State Accepted
Headers show
Series [meta-oe,1/3] dbus-broker: upgrade 36->37 | expand

Commit Message

Gyorgy Sarvari Nov. 27, 2025, 4:17 p.m. UTC
It takes less than 30 seconds to execute.

Add a backported patch that fixes a broken test.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
 .../include/ptest-packagelists-meta-oe.inc    |  1 +
 ...-loosen-verification-of-stale-pidfds.patch | 52 +++++++++++++++++++
 .../recipes-core/dbus/dbus-broker/run-ptest   | 19 +++++++
 meta-oe/recipes-core/dbus/dbus-broker_37.bb   | 12 ++++-
 4 files changed, 82 insertions(+), 2 deletions(-)
 create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
 create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/run-ptest

Comments

Khem Raj Nov. 28, 2025, 7:34 p.m. UTC | #1
with musl/systemd combo I get

 ERROR: Nothing RPROVIDES 'dbus-broker-ptest' (but
virtual:mcextend:dbus-broker:/srv/build/yoe/
   ↪ sources/meta-openembedded/meta-oe/recipes-core/images/
meta-oe-image-ptest.bb RDEPENDS on or
   ↪ otherwise requires it)
   dbus-broker RPROVIDES dbus-broker-ptest but was skipped: using DISTRO
'yoe', which is missing
   ↪ required DISTRO_FEATURES: 'systemd'
   NOTE: Runtime target 'dbus-broker-ptest' is unbuildable, removing...
   Missing or unbuildable dependency chain was: ['dbus-broker-ptest']
   NOTE: Runtime target 'meta-oe-image-ptest-all-dev' is unbuildable,
removing...
   Missing or unbuildable dependency chain was:
['meta-oe-image-ptest-all-dev', 'meta-oe-image-
   ↪ ptest-dbus-broker', 'dbus-broker-ptest']
   NOTE: Runtime target 'meta-oe-image-ptest-all' is unbuildable,
removing...
   Missing or unbuildable dependency chain was: ['meta-oe-image-ptest-all',
'meta-oe-image-ptest-
   ↪ dbus-broker', 'dbus-broker-ptest']
   ERROR: Nothing RPROVIDES 'meta-oe-image-ptest-dbus-broker'
   No eligible RPROVIDERs exist for 'meta-oe-image-ptest-dbus-broker'
   NOTE: Runtime target 'meta-oe-image-ptest-dbus-broker' is unbuildable,
removing...
   Missing or unbuildable dependency chain was:
['meta-oe-image-ptest-dbus-broker']

On Thu, Nov 27, 2025 at 8:17 AM Gyorgy Sarvari via lists.openembedded.org
<skandigraun=gmail.com@lists.openembedded.org> wrote:

> It takes less than 30 seconds to execute.
>
> Add a backported patch that fixes a broken test.
>
> Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
> ---
>  .../include/ptest-packagelists-meta-oe.inc    |  1 +
>  ...-loosen-verification-of-stale-pidfds.patch | 52 +++++++++++++++++++
>  .../recipes-core/dbus/dbus-broker/run-ptest   | 19 +++++++
>  meta-oe/recipes-core/dbus/dbus-broker_37.bb   | 12 ++++-
>  4 files changed, 82 insertions(+), 2 deletions(-)
>  create mode 100644
> meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>  create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>
> diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> index 52ca06ae43..b725c1aa36 100644
> --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> @@ -12,6 +12,7 @@ PTESTS_FAST_META_OE = "\
>      cli11 \
>      cmocka \
>      cunit \
> +    dbus-broker \
>      duktape \
>      exiv2 \
>      fuse3 \
> diff --git
> a/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> new file mode 100644
> index 0000000000..fac5be1917
> --- /dev/null
> +++
> b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> @@ -0,0 +1,52 @@
> +From cc7f9da25b103aacbb1595d04af9cb70ef8f43d9 Mon Sep 17 00:00:00 2001
> +From: Gyorgy Sarvari <skandigraun@gmail.com>
> +Date: Thu, 4 Sep 2025 10:23:36 +0200
> +Subject: [PATCH] test/sockopt: loosen verification of stale pidfds
> +
> +From: David Rheinsberg <david@readahead.eu>
> +
> +Newer kernels now properly return stale pidfds from AF_UNIX sockets,
> +rather than refusing the operation. Ensure that our tests adopt to this
> +and properly verify staleness.
> +
> +Signed-off-by: David Rheinsberg <david@readahead.eu>
> +Upstream-Status: Backport [
> https://github.com/bus1/dbus-broker/commit/fd5c6e191bffcf5b3e6c9abb8b0b03479accc04b
> ]
> +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
> +---
> + src/util/test-sockopt.c | 16 ++++++++++++----
> + 1 file changed, 12 insertions(+), 4 deletions(-)
> +
> +diff --git a/src/util/test-sockopt.c b/src/util/test-sockopt.c
> +index 04148af..eaa8fba 100644
> +--- a/src/util/test-sockopt.c
> ++++ b/src/util/test-sockopt.c
> +@@ -81,17 +81,25 @@ static void test_peerpidfd_client(
> +
> +         r = sockopt_get_peerpidfd(fd, &pidfd);
> +         if (r != SOCKOPT_E_UNSUPPORTED) {
> +-                if (stale) {
> +-                        c_assert(r == SOCKOPT_E_REAPED);
> ++                if (r == SOCKOPT_E_REAPED) {
> ++                        /*
> ++                         * Old kernels refused to return stale pidfds.
> Hence,
> ++                         * in that case verify that we expected a stale
> pidfd.
> ++                         */
> ++                        c_assert(stale);
> +                 } else {
> +                         c_assert(!r);
> +                         c_assert(pidfd >= 0);
> +
> +                         r = proc_resolve_pidfd(pidfd, &pid_socket);
> +                         c_assert(!r);
> +-                        c_assert(pid_socket > 0);
> +
> +-                        c_assert(pid_socket == pid_server);
> ++                        if (stale) {
> ++                                c_assert(pid_socket == -1);
> ++                        } else {
> ++                                c_assert(pid_socket > 0);
> ++                                c_assert(pid_socket == pid_server);
> ++                        }
> +                 }
> +         }
> + }
> diff --git a/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> new file mode 100644
> index 0000000000..789000523e
> --- /dev/null
> +++ b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> @@ -0,0 +1,19 @@
> +#!/bin/sh
> +RET=0
> +
> +run_tests(){
> +  for t in *; do
> +    if ./$t; then
> +      echo PASS: $t
> +    else
> +      echo FAIL: $t
> +      RET=1
> +    fi
> +  done
> +}
> +
> +cd /usr/lib/dbus-broker/tests/dbus
> +run_tests
> +cd /usr/lib/dbus-broker/tests/unit
> +run_tests
> +exit $RET
> diff --git a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> index f0312181b6..c531f555d2 100644
> --- a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> +++ b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> @@ -10,7 +10,10 @@ DEPENDS = "\
>      ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux (>=
> 3.2)', '', d)} \
>  "
>
> -SRC_URI = "
> https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz"
> +SRC_URI = "
> https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
> \
> +
>  file://0001-test-sockopt-loosen-verification-of-stale-pidfds.patch \
> +           file://run-ptest \
> +           "
>  SRC_URI[sha256sum] =
> "f819a8db8795fa08c767612e3823fd594694a0990f2543ecf35d6a1a6bf2ab5b"
>
>  UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases"
> @@ -18,10 +21,11 @@ UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+)"
>
>  SYSTEMD_SERVICE:${PN} = "${BPN}.service"
>
> -inherit meson pkgconfig systemd features_check
> +inherit meson pkgconfig systemd features_check ptest
>
>  EXTRA_OEMESON += "-Daudit=${@bb.utils.contains('DISTRO_FEATURES',
> 'selinux', 'true', 'false', d)}"
>  EXTRA_OEMESON += "-Dselinux=${@bb.utils.contains('DISTRO_FEATURES',
> 'selinux', 'true', 'false', d)}"
> +EXTRA_OEMESON += "-Dtests=${@bb.utils.contains('PTEST_ENABLED', '1',
> 'true', 'false', d)}"
>
>  REQUIRED_DISTRO_FEATURES = "systemd"
>
> @@ -36,3 +40,7 @@ RDEPENDS:${PN} += "dbus-common dbus-tools"
>  FILES:${PN} += "${nonarch_libdir}/systemd/catalog"
>  FILES:${PN} += "${systemd_system_unitdir}"
>  FILES:${PN} += "${systemd_user_unitdir}"
> +FILES:${PN}-ptest += "${libdir}/${PN}/tests"
> +
> +# test-sockopt fails to compile with musl without this flag
> +CFLAGS:append:libc-musl = "${@bb.utils.contains('PTEST_ENABLED', '1', '
> -Wno-error=incompatible-pointer-types ', '', d)}"
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#122111):
> https://lists.openembedded.org/g/openembedded-devel/message/122111
> Mute This Topic: https://lists.openembedded.org/mt/116502872/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Gyorgy Sarvari Nov. 28, 2025, 8:02 p.m. UTC | #2
On 11/28/25 20:34, Khem Raj wrote:
> with musl/systemd combo I get
>

Wait, you mean that you have systemd enabled in DISTRO_FEATURES, and
still this error is thrown?


>  ERROR: Nothing RPROVIDES 'dbus-broker-ptest' (but
> virtual:mcextend:dbus-broker:/srv/build/yoe/
>    ↪
> sources/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
> <http://meta-oe-image-ptest.bb> RDEPENDS on or
>    ↪ otherwise requires it)
>    dbus-broker RPROVIDES dbus-broker-ptest but was skipped: using
> DISTRO 'yoe', which is missing
>    ↪ required DISTRO_FEATURES: 'systemd'
>    NOTE: Runtime target 'dbus-broker-ptest' is unbuildable, removing...
>    Missing or unbuildable dependency chain was: ['dbus-broker-ptest']
>    NOTE: Runtime target 'meta-oe-image-ptest-all-dev' is unbuildable,
> removing...
>    Missing or unbuildable dependency chain was:
> ['meta-oe-image-ptest-all-dev', 'meta-oe-image-
>    ↪ ptest-dbus-broker', 'dbus-broker-ptest']
>    NOTE: Runtime target 'meta-oe-image-ptest-all' is unbuildable,
> removing...
>    Missing or unbuildable dependency chain was:
> ['meta-oe-image-ptest-all', 'meta-oe-image-ptest-
>    ↪ dbus-broker', 'dbus-broker-ptest']
>    ERROR: Nothing RPROVIDES 'meta-oe-image-ptest-dbus-broker'
>    No eligible RPROVIDERs exist for 'meta-oe-image-ptest-dbus-broker'
>    NOTE: Runtime target 'meta-oe-image-ptest-dbus-broker' is
> unbuildable, removing...
>    Missing or unbuildable dependency chain was:
> ['meta-oe-image-ptest-dbus-broker']
>
> On Thu, Nov 27, 2025 at 8:17 AM Gyorgy Sarvari via
> lists.openembedded.org <http://lists.openembedded.org>
> <skandigraun=gmail.com@lists.openembedded.org> wrote:
>
>     It takes less than 30 seconds to execute.
>
>     Add a backported patch that fixes a broken test.
>
>     Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
>     ---
>      .../include/ptest-packagelists-meta-oe.inc    |  1 +
>      ...-loosen-verification-of-stale-pidfds.patch | 52
>     +++++++++++++++++++
>      .../recipes-core/dbus/dbus-broker/run-ptest   | 19 +++++++
>      meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>   | 12 ++++-
>      4 files changed, 82 insertions(+), 2 deletions(-)
>      create mode 100644
>     meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>      create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>
>     diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     index 52ca06ae43..b725c1aa36 100644
>     --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     @@ -12,6 +12,7 @@ PTESTS_FAST_META_OE = "\
>          cli11 \
>          cmocka \
>          cunit \
>     +    dbus-broker \
>          duktape \
>          exiv2 \
>          fuse3 \
>     diff --git
>     a/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     new file mode 100644
>     index 0000000000..fac5be1917
>     --- /dev/null
>     +++
>     b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     @@ -0,0 +1,52 @@
>     +From cc7f9da25b103aacbb1595d04af9cb70ef8f43d9 Mon Sep 17 00:00:00
>     2001
>     +From: Gyorgy Sarvari <skandigraun@gmail.com>
>     +Date: Thu, 4 Sep 2025 10:23:36 +0200
>     +Subject: [PATCH] test/sockopt: loosen verification of stale pidfds
>     +
>     +From: David Rheinsberg <david@readahead.eu>
>     +
>     +Newer kernels now properly return stale pidfds from AF_UNIX sockets,
>     +rather than refusing the operation. Ensure that our tests adopt
>     to this
>     +and properly verify staleness.
>     +
>     +Signed-off-by: David Rheinsberg <david@readahead.eu>
>     +Upstream-Status: Backport
>     [https://github.com/bus1/dbus-broker/commit/fd5c6e191bffcf5b3e6c9abb8b0b03479accc04b]
>     +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
>     +---
>     + src/util/test-sockopt.c | 16 ++++++++++++----
>     + 1 file changed, 12 insertions(+), 4 deletions(-)
>     +
>     +diff --git a/src/util/test-sockopt.c b/src/util/test-sockopt.c
>     +index 04148af..eaa8fba 100644
>     +--- a/src/util/test-sockopt.c
>     ++++ b/src/util/test-sockopt.c
>     +@@ -81,17 +81,25 @@ static void test_peerpidfd_client(
>     +
>     +         r = sockopt_get_peerpidfd(fd, &pidfd);
>     +         if (r != SOCKOPT_E_UNSUPPORTED) {
>     +-                if (stale) {
>     +-                        c_assert(r == SOCKOPT_E_REAPED);
>     ++                if (r == SOCKOPT_E_REAPED) {
>     ++                        /*
>     ++                         * Old kernels refused to return stale
>     pidfds. Hence,
>     ++                         * in that case verify that we expected
>     a stale pidfd.
>     ++                         */
>     ++                        c_assert(stale);
>     +                 } else {
>     +                         c_assert(!r);
>     +                         c_assert(pidfd >= 0);
>     +
>     +                         r = proc_resolve_pidfd(pidfd, &pid_socket);
>     +                         c_assert(!r);
>     +-                        c_assert(pid_socket > 0);
>     +
>     +-                        c_assert(pid_socket == pid_server);
>     ++                        if (stale) {
>     ++                                c_assert(pid_socket == -1);
>     ++                        } else {
>     ++                                c_assert(pid_socket > 0);
>     ++                                c_assert(pid_socket == pid_server);
>     ++                        }
>     +                 }
>     +         }
>     + }
>     diff --git a/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     new file mode 100644
>     index 0000000000..789000523e
>     --- /dev/null
>     +++ b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     @@ -0,0 +1,19 @@
>     +#!/bin/sh
>     +RET=0
>     +
>     +run_tests(){
>     +  for t in *; do
>     +    if ./$t; then
>     +      echo PASS: $t
>     +    else
>     +      echo FAIL: $t
>     +      RET=1
>     +    fi
>     +  done
>     +}
>     +
>     +cd /usr/lib/dbus-broker/tests/dbus
>     +run_tests
>     +cd /usr/lib/dbus-broker/tests/unit
>     +run_tests
>     +exit $RET
>     diff --git a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     index f0312181b6..c531f555d2 100644
>     --- a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     +++ b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     @@ -10,7 +10,10 @@ DEPENDS = "\
>          ${@bb.utils.contains('DISTRO_FEATURES', 'selinux',
>     'libselinux (>= 3.2)', '', d)} \
>      "
>
>     -SRC_URI =
>     "https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
>     <https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz>"
>     +SRC_URI =
>     "https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
>     <https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz>
>     \
>     +         
>      file://0001-test-sockopt-loosen-verification-of-stale-pidfds.patch \
>     +           file://run-ptest \
>     +           "
>      SRC_URI[sha256sum] =
>     "f819a8db8795fa08c767612e3823fd594694a0990f2543ecf35d6a1a6bf2ab5b"
>
>      UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases
>     <https://github.com/bus1/$%7BBPN%7D/releases>"
>     @@ -18,10 +21,11 @@ UPSTREAM_CHECK_REGEX =
>     "releases/tag/v(?P<pver>\d+)"
>
>      SYSTEMD_SERVICE:${PN} = "${BPN}.service"
>
>     -inherit meson pkgconfig systemd features_check
>     +inherit meson pkgconfig systemd features_check ptest
>
>      EXTRA_OEMESON += "-Daudit=${@bb.utils.contains('DISTRO_FEATURES',
>     'selinux', 'true', 'false', d)}"
>      EXTRA_OEMESON +=
>     "-Dselinux=${@bb.utils.contains('DISTRO_FEATURES', 'selinux',
>     'true', 'false', d)}"
>     +EXTRA_OEMESON += "-Dtests=${@bb.utils.contains('PTEST_ENABLED',
>     '1', 'true', 'false', d)}"
>
>      REQUIRED_DISTRO_FEATURES = "systemd"
>
>     @@ -36,3 +40,7 @@ RDEPENDS:${PN} += "dbus-common dbus-tools"
>      FILES:${PN} += "${nonarch_libdir}/systemd/catalog"
>      FILES:${PN} += "${systemd_system_unitdir}"
>      FILES:${PN} += "${systemd_user_unitdir}"
>     +FILES:${PN}-ptest += "${libdir}/${PN}/tests"
>     +
>     +# test-sockopt fails to compile with musl without this flag
>     +CFLAGS:append:libc-musl = "${@bb.utils.contains('PTEST_ENABLED',
>     '1', ' -Wno-error=incompatible-pointer-types ', '', d)}"
>
>     -=-=-=-=-=-=-=-=-=-=-=-
>     Links: You receive all messages sent to this group.
>     View/Reply Online (#122111):
>     https://lists.openembedded.org/g/openembedded-devel/message/122111
>     Mute This Topic: https://lists.openembedded.org/mt/116502872/1997914
>     Group Owner: openembedded-devel+owner@lists.openembedded.org
>     <mailto:openembedded-devel%2Bowner@lists.openembedded.org>
>     Unsubscribe:
>     https://lists.openembedded.org/g/openembedded-devel/unsub
>     [raj.khem@gmail.com]
>     -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Nov. 28, 2025, 8:05 p.m. UTC | #3
No, typo its with musl/sysvinit

On Fri, Nov 28, 2025 at 12:02 PM Gyorgy Sarvari <skandigraun@gmail.com>
wrote:

> On 11/28/25 20:34, Khem Raj wrote:
> > with musl/systemd combo I get
> >
>
> Wait, you mean that you have systemd enabled in DISTRO_FEATURES, and
> still this error is thrown?
>
>
> >  ERROR: Nothing RPROVIDES 'dbus-broker-ptest' (but
> > virtual:mcextend:dbus-broker:/srv/build/yoe/
> >    ↪
> > sources/meta-openembedded/meta-oe/recipes-core/images/
> meta-oe-image-ptest.bb
> > <http://meta-oe-image-ptest.bb> RDEPENDS on or
> >    ↪ otherwise requires it)
> >    dbus-broker RPROVIDES dbus-broker-ptest but was skipped: using
> > DISTRO 'yoe', which is missing
> >    ↪ required DISTRO_FEATURES: 'systemd'
> >    NOTE: Runtime target 'dbus-broker-ptest' is unbuildable, removing...
> >    Missing or unbuildable dependency chain was: ['dbus-broker-ptest']
> >    NOTE: Runtime target 'meta-oe-image-ptest-all-dev' is unbuildable,
> > removing...
> >    Missing or unbuildable dependency chain was:
> > ['meta-oe-image-ptest-all-dev', 'meta-oe-image-
> >    ↪ ptest-dbus-broker', 'dbus-broker-ptest']
> >    NOTE: Runtime target 'meta-oe-image-ptest-all' is unbuildable,
> > removing...
> >    Missing or unbuildable dependency chain was:
> > ['meta-oe-image-ptest-all', 'meta-oe-image-ptest-
> >    ↪ dbus-broker', 'dbus-broker-ptest']
> >    ERROR: Nothing RPROVIDES 'meta-oe-image-ptest-dbus-broker'
> >    No eligible RPROVIDERs exist for 'meta-oe-image-ptest-dbus-broker'
> >    NOTE: Runtime target 'meta-oe-image-ptest-dbus-broker' is
> > unbuildable, removing...
> >    Missing or unbuildable dependency chain was:
> > ['meta-oe-image-ptest-dbus-broker']
> >
> > On Thu, Nov 27, 2025 at 8:17 AM Gyorgy Sarvari via
> > lists.openembedded.org <http://lists.openembedded.org>
> > <skandigraun=gmail.com@lists.openembedded.org> wrote:
> >
> >     It takes less than 30 seconds to execute.
> >
> >     Add a backported patch that fixes a broken test.
> >
> >     Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
> >     ---
> >      .../include/ptest-packagelists-meta-oe.inc    |  1 +
> >      ...-loosen-verification-of-stale-pidfds.patch | 52
> >     +++++++++++++++++++
> >      .../recipes-core/dbus/dbus-broker/run-ptest   | 19 +++++++
> >      meta-oe/recipes-core/dbus/dbus-broker_37.bb
> >     <http://dbus-broker_37.bb>   | 12 ++++-
> >      4 files changed, 82 insertions(+), 2 deletions(-)
> >      create mode 100644
> >
>  meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> >      create mode 100644 meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> >
> >     diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     index 52ca06ae43..b725c1aa36 100644
> >     --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> >     @@ -12,6 +12,7 @@ PTESTS_FAST_META_OE = "\
> >          cli11 \
> >          cmocka \
> >          cunit \
> >     +    dbus-broker \
> >          duktape \
> >          exiv2 \
> >          fuse3 \
> >     diff --git
> >
>  a/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> >
>  b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> >     new file mode 100644
> >     index 0000000000..fac5be1917
> >     --- /dev/null
> >     +++
> >
>  b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
> >     @@ -0,0 +1,52 @@
> >     +From cc7f9da25b103aacbb1595d04af9cb70ef8f43d9 Mon Sep 17 00:00:00
> >     2001
> >     +From: Gyorgy Sarvari <skandigraun@gmail.com>
> >     +Date: Thu, 4 Sep 2025 10:23:36 +0200
> >     +Subject: [PATCH] test/sockopt: loosen verification of stale pidfds
> >     +
> >     +From: David Rheinsberg <david@readahead.eu>
> >     +
> >     +Newer kernels now properly return stale pidfds from AF_UNIX sockets,
> >     +rather than refusing the operation. Ensure that our tests adopt
> >     to this
> >     +and properly verify staleness.
> >     +
> >     +Signed-off-by: David Rheinsberg <david@readahead.eu>
> >     +Upstream-Status: Backport
> >     [
> https://github.com/bus1/dbus-broker/commit/fd5c6e191bffcf5b3e6c9abb8b0b03479accc04b
> ]
> >     +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
> >     +---
> >     + src/util/test-sockopt.c | 16 ++++++++++++----
> >     + 1 file changed, 12 insertions(+), 4 deletions(-)
> >     +
> >     +diff --git a/src/util/test-sockopt.c b/src/util/test-sockopt.c
> >     +index 04148af..eaa8fba 100644
> >     +--- a/src/util/test-sockopt.c
> >     ++++ b/src/util/test-sockopt.c
> >     +@@ -81,17 +81,25 @@ static void test_peerpidfd_client(
> >     +
> >     +         r = sockopt_get_peerpidfd(fd, &pidfd);
> >     +         if (r != SOCKOPT_E_UNSUPPORTED) {
> >     +-                if (stale) {
> >     +-                        c_assert(r == SOCKOPT_E_REAPED);
> >     ++                if (r == SOCKOPT_E_REAPED) {
> >     ++                        /*
> >     ++                         * Old kernels refused to return stale
> >     pidfds. Hence,
> >     ++                         * in that case verify that we expected
> >     a stale pidfd.
> >     ++                         */
> >     ++                        c_assert(stale);
> >     +                 } else {
> >     +                         c_assert(!r);
> >     +                         c_assert(pidfd >= 0);
> >     +
> >     +                         r = proc_resolve_pidfd(pidfd, &pid_socket);
> >     +                         c_assert(!r);
> >     +-                        c_assert(pid_socket > 0);
> >     +
> >     +-                        c_assert(pid_socket == pid_server);
> >     ++                        if (stale) {
> >     ++                                c_assert(pid_socket == -1);
> >     ++                        } else {
> >     ++                                c_assert(pid_socket > 0);
> >     ++                                c_assert(pid_socket == pid_server);
> >     ++                        }
> >     +                 }
> >     +         }
> >     + }
> >     diff --git a/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> >     b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> >     new file mode 100644
> >     index 0000000000..789000523e
> >     --- /dev/null
> >     +++ b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
> >     @@ -0,0 +1,19 @@
> >     +#!/bin/sh
> >     +RET=0
> >     +
> >     +run_tests(){
> >     +  for t in *; do
> >     +    if ./$t; then
> >     +      echo PASS: $t
> >     +    else
> >     +      echo FAIL: $t
> >     +      RET=1
> >     +    fi
> >     +  done
> >     +}
> >     +
> >     +cd /usr/lib/dbus-broker/tests/dbus
> >     +run_tests
> >     +cd /usr/lib/dbus-broker/tests/unit
> >     +run_tests
> >     +exit $RET
> >     diff --git a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> >     <http://dbus-broker_37.bb>
> >     b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> >     <http://dbus-broker_37.bb>
> >     index f0312181b6..c531f555d2 100644
> >     --- a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> >     <http://dbus-broker_37.bb>
> >     +++ b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
> >     <http://dbus-broker_37.bb>
> >     @@ -10,7 +10,10 @@ DEPENDS = "\
> >          ${@bb.utils.contains('DISTRO_FEATURES', 'selinux',
> >     'libselinux (>= 3.2)', '', d)} \
> >      "
> >
> >     -SRC_URI =
> >     "
> https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
> >     <
> https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz
> >"
> >     +SRC_URI =
> >     "
> https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
> >     <
> https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz
> >
> >     \
> >     +
> >      file://0001-test-sockopt-loosen-verification-of-stale-pidfds.patch \
> >     +           file://run-ptest \
> >     +           "
> >      SRC_URI[sha256sum] =
> >     "f819a8db8795fa08c767612e3823fd594694a0990f2543ecf35d6a1a6bf2ab5b"
> >
> >      UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases
> >     <https://github.com/bus1/$%7BBPN%7D/releases>"
> >     @@ -18,10 +21,11 @@ UPSTREAM_CHECK_REGEX =
> >     "releases/tag/v(?P<pver>\d+)"
> >
> >      SYSTEMD_SERVICE:${PN} = "${BPN}.service"
> >
> >     -inherit meson pkgconfig systemd features_check
> >     +inherit meson pkgconfig systemd features_check ptest
> >
> >      EXTRA_OEMESON += "-Daudit=${@bb.utils.contains('DISTRO_FEATURES',
> >     'selinux', 'true', 'false', d)}"
> >      EXTRA_OEMESON +=
> >     "-Dselinux=${@bb.utils.contains('DISTRO_FEATURES', 'selinux',
> >     'true', 'false', d)}"
> >     +EXTRA_OEMESON += "-Dtests=${@bb.utils.contains('PTEST_ENABLED',
> >     '1', 'true', 'false', d)}"
> >
> >      REQUIRED_DISTRO_FEATURES = "systemd"
> >
> >     @@ -36,3 +40,7 @@ RDEPENDS:${PN} += "dbus-common dbus-tools"
> >      FILES:${PN} += "${nonarch_libdir}/systemd/catalog"
> >      FILES:${PN} += "${systemd_system_unitdir}"
> >      FILES:${PN} += "${systemd_user_unitdir}"
> >     +FILES:${PN}-ptest += "${libdir}/${PN}/tests"
> >     +
> >     +# test-sockopt fails to compile with musl without this flag
> >     +CFLAGS:append:libc-musl = "${@bb.utils.contains('PTEST_ENABLED',
> >     '1', ' -Wno-error=incompatible-pointer-types ', '', d)}"
> >
> >     -=-=-=-=-=-=-=-=-=-=-=-
> >     Links: You receive all messages sent to this group.
> >     View/Reply Online (#122111):
> >     https://lists.openembedded.org/g/openembedded-devel/message/122111
> >     Mute This Topic: https://lists.openembedded.org/mt/116502872/1997914
> >     Group Owner: openembedded-devel+owner@lists.openembedded.org
> >     <mailto:openembedded-devel%2Bowner@lists.openembedded.org>
> >     Unsubscribe:
> >     https://lists.openembedded.org/g/openembedded-devel/unsub
> >     [raj.khem@gmail.com]
> >     -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
Gyorgy Sarvari Nov. 28, 2025, 8:10 p.m. UTC | #4
On 11/28/25 21:05, Khem Raj wrote:
> No, typo its with musl/sysvinit
>

Ah, I see. 
I can add this recipe conditionally to the ptest list, and make it a
blank when systemd is not enabled. Will send a v2.

> On Fri, Nov 28, 2025 at 12:02 PM Gyorgy Sarvari
> <skandigraun@gmail.com> wrote:
>
>     On 11/28/25 20:34, Khem Raj wrote:
>     > with musl/systemd combo I get
>     >
>
>     Wait, you mean that you have systemd enabled in DISTRO_FEATURES, and
>     still this error is thrown?
>
>
>     >  ERROR: Nothing RPROVIDES 'dbus-broker-ptest' (but
>     > virtual:mcextend:dbus-broker:/srv/build/yoe/
>     >    ↪
>     >
>     sources/meta-openembedded/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
>     <http://meta-oe-image-ptest.bb>
>     > <http://meta-oe-image-ptest.bb> RDEPENDS on or
>     >    ↪ otherwise requires it)
>     >    dbus-broker RPROVIDES dbus-broker-ptest but was skipped: using
>     > DISTRO 'yoe', which is missing
>     >    ↪ required DISTRO_FEATURES: 'systemd'
>     >    NOTE: Runtime target 'dbus-broker-ptest' is unbuildable,
>     removing...
>     >    Missing or unbuildable dependency chain was:
>     ['dbus-broker-ptest']
>     >    NOTE: Runtime target 'meta-oe-image-ptest-all-dev' is
>     unbuildable,
>     > removing...
>     >    Missing or unbuildable dependency chain was:
>     > ['meta-oe-image-ptest-all-dev', 'meta-oe-image-
>     >    ↪ ptest-dbus-broker', 'dbus-broker-ptest']
>     >    NOTE: Runtime target 'meta-oe-image-ptest-all' is unbuildable,
>     > removing...
>     >    Missing or unbuildable dependency chain was:
>     > ['meta-oe-image-ptest-all', 'meta-oe-image-ptest-
>     >    ↪ dbus-broker', 'dbus-broker-ptest']
>     >    ERROR: Nothing RPROVIDES 'meta-oe-image-ptest-dbus-broker'
>     >    No eligible RPROVIDERs exist for
>     'meta-oe-image-ptest-dbus-broker'
>     >    NOTE: Runtime target 'meta-oe-image-ptest-dbus-broker' is
>     > unbuildable, removing...
>     >    Missing or unbuildable dependency chain was:
>     > ['meta-oe-image-ptest-dbus-broker']
>     >
>     > On Thu, Nov 27, 2025 at 8:17 AM Gyorgy Sarvari via
>     > lists.openembedded.org <http://lists.openembedded.org>
>     <http://lists.openembedded.org>
>     > <skandigraun=gmail.com@lists.openembedded.org> wrote:
>     >
>     >     It takes less than 30 seconds to execute.
>     >
>     >     Add a backported patch that fixes a broken test.
>     >
>     >     Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
>     >     ---
>     >      .../include/ptest-packagelists-meta-oe.inc    |  1 +
>     >      ...-loosen-verification-of-stale-pidfds.patch | 52
>     >     +++++++++++++++++++
>     >      .../recipes-core/dbus/dbus-broker/run-ptest   | 19 +++++++
>     >      meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     >     <http://dbus-broker_37.bb>   | 12 ++++-
>     >      4 files changed, 82 insertions(+), 2 deletions(-)
>     >      create mode 100644
>     >   
>      meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     >      create mode 100644
>     meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     >
>     >     diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     >     b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     >     index 52ca06ae43..b725c1aa36 100644
>     >     --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     >     +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
>     >     @@ -12,6 +12,7 @@ PTESTS_FAST_META_OE = "\
>     >          cli11 \
>     >          cmocka \
>     >          cunit \
>     >     +    dbus-broker \
>     >          duktape \
>     >          exiv2 \
>     >          fuse3 \
>     >     diff --git
>     >   
>      a/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     >   
>      b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     >     new file mode 100644
>     >     index 0000000000..fac5be1917
>     >     --- /dev/null
>     >     +++
>     >   
>      b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
>     >     @@ -0,0 +1,52 @@
>     >     +From cc7f9da25b103aacbb1595d04af9cb70ef8f43d9 Mon Sep 17
>     00:00:00
>     >     2001
>     >     +From: Gyorgy Sarvari <skandigraun@gmail.com>
>     >     +Date: Thu, 4 Sep 2025 10:23:36 +0200
>     >     +Subject: [PATCH] test/sockopt: loosen verification of stale
>     pidfds
>     >     +
>     >     +From: David Rheinsberg <david@readahead.eu>
>     >     +
>     >     +Newer kernels now properly return stale pidfds from AF_UNIX
>     sockets,
>     >     +rather than refusing the operation. Ensure that our tests adopt
>     >     to this
>     >     +and properly verify staleness.
>     >     +
>     >     +Signed-off-by: David Rheinsberg <david@readahead.eu>
>     >     +Upstream-Status: Backport
>     >   
>      [https://github.com/bus1/dbus-broker/commit/fd5c6e191bffcf5b3e6c9abb8b0b03479accc04b]
>     >     +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
>     >     +---
>     >     + src/util/test-sockopt.c | 16 ++++++++++++----
>     >     + 1 file changed, 12 insertions(+), 4 deletions(-)
>     >     +
>     >     +diff --git a/src/util/test-sockopt.c b/src/util/test-sockopt.c
>     >     +index 04148af..eaa8fba 100644
>     >     +--- a/src/util/test-sockopt.c
>     >     ++++ b/src/util/test-sockopt.c
>     >     +@@ -81,17 +81,25 @@ static void test_peerpidfd_client(
>     >     +
>     >     +         r = sockopt_get_peerpidfd(fd, &pidfd);
>     >     +         if (r != SOCKOPT_E_UNSUPPORTED) {
>     >     +-                if (stale) {
>     >     +-                        c_assert(r == SOCKOPT_E_REAPED);
>     >     ++                if (r == SOCKOPT_E_REAPED) {
>     >     ++                        /*
>     >     ++                         * Old kernels refused to return stale
>     >     pidfds. Hence,
>     >     ++                         * in that case verify that we
>     expected
>     >     a stale pidfd.
>     >     ++                         */
>     >     ++                        c_assert(stale);
>     >     +                 } else {
>     >     +                         c_assert(!r);
>     >     +                         c_assert(pidfd >= 0);
>     >     +
>     >     +                         r = proc_resolve_pidfd(pidfd,
>     &pid_socket);
>     >     +                         c_assert(!r);
>     >     +-                        c_assert(pid_socket > 0);
>     >     +
>     >     +-                        c_assert(pid_socket == pid_server);
>     >     ++                        if (stale) {
>     >     ++                                c_assert(pid_socket == -1);
>     >     ++                        } else {
>     >     ++                                c_assert(pid_socket > 0);
>     >     ++                                c_assert(pid_socket ==
>     pid_server);
>     >     ++                        }
>     >     +                 }
>     >     +         }
>     >     + }
>     >     diff --git a/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     >     b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     >     new file mode 100644
>     >     index 0000000000..789000523e
>     >     --- /dev/null
>     >     +++ b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
>     >     @@ -0,0 +1,19 @@
>     >     +#!/bin/sh
>     >     +RET=0
>     >     +
>     >     +run_tests(){
>     >     +  for t in *; do
>     >     +    if ./$t; then
>     >     +      echo PASS: $t
>     >     +    else
>     >     +      echo FAIL: $t
>     >     +      RET=1
>     >     +    fi
>     >     +  done
>     >     +}
>     >     +
>     >     +cd /usr/lib/dbus-broker/tests/dbus
>     >     +run_tests
>     >     +cd /usr/lib/dbus-broker/tests/unit
>     >     +run_tests
>     >     +exit $RET
>     >     diff --git a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     >     <http://dbus-broker_37.bb>
>     >     b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     >     <http://dbus-broker_37.bb>
>     >     index f0312181b6..c531f555d2 100644
>     >     --- a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     >     <http://dbus-broker_37.bb>
>     >     +++ b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
>     <http://dbus-broker_37.bb>
>     >     <http://dbus-broker_37.bb>
>     >     @@ -10,7 +10,10 @@ DEPENDS = "\
>     >          ${@bb.utils.contains('DISTRO_FEATURES', 'selinux',
>     >     'libselinux (>= 3.2)', '', d)} \
>     >      "
>     >
>     >     -SRC_URI =
>     >   
>      "https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
>     <https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz>
>     >   
>      <https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz>"
>     >     +SRC_URI =
>     >   
>      "https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz
>     <https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz>
>     >   
>      <https://github.com/bus1/dbus-broker/releases/download/v$%7BPV%7D/$%7BBP%7D.tar.xz>
>     >     \
>     >     +         
>     >   
>       file://0001-test-sockopt-loosen-verification-of-stale-pidfds.patch \
>     >     +           file://run-ptest \
>     >     +           "
>     >      SRC_URI[sha256sum] =
>     >   
>      "f819a8db8795fa08c767612e3823fd594694a0990f2543ecf35d6a1a6bf2ab5b"
>     >
>     >      UPSTREAM_CHECK_URI =
>     "https://github.com/bus1/${BPN}/releases
>     <https://github.com/bus1/$%7BBPN%7D/releases>
>     >     <https://github.com/bus1/$%7BBPN%7D/releases>"
>     >     @@ -18,10 +21,11 @@ UPSTREAM_CHECK_REGEX =
>     >     "releases/tag/v(?P<pver>\d+)"
>     >
>     >      SYSTEMD_SERVICE:${PN} = "${BPN}.service"
>     >
>     >     -inherit meson pkgconfig systemd features_check
>     >     +inherit meson pkgconfig systemd features_check ptest
>     >
>     >      EXTRA_OEMESON +=
>     "-Daudit=${@bb.utils.contains('DISTRO_FEATURES',
>     >     'selinux', 'true', 'false', d)}"
>     >      EXTRA_OEMESON +=
>     >     "-Dselinux=${@bb.utils.contains('DISTRO_FEATURES', 'selinux',
>     >     'true', 'false', d)}"
>     >     +EXTRA_OEMESON += "-Dtests=${@bb.utils.contains('PTEST_ENABLED',
>     >     '1', 'true', 'false', d)}"
>     >
>     >      REQUIRED_DISTRO_FEATURES = "systemd"
>     >
>     >     @@ -36,3 +40,7 @@ RDEPENDS:${PN} += "dbus-common dbus-tools"
>     >      FILES:${PN} += "${nonarch_libdir}/systemd/catalog"
>     >      FILES:${PN} += "${systemd_system_unitdir}"
>     >      FILES:${PN} += "${systemd_user_unitdir}"
>     >     +FILES:${PN}-ptest += "${libdir}/${PN}/tests"
>     >     +
>     >     +# test-sockopt fails to compile with musl without this flag
>     >     +CFLAGS:append:libc-musl =
>     "${@bb.utils.contains('PTEST_ENABLED',
>     >     '1', ' -Wno-error=incompatible-pointer-types ', '', d)}"
>     >
>     >     -=-=-=-=-=-=-=-=-=-=-=-
>     >     Links: You receive all messages sent to this group.
>     >     View/Reply Online (#122111):
>     >   
>      https://lists.openembedded.org/g/openembedded-devel/message/122111
>     >     Mute This Topic:
>     https://lists.openembedded.org/mt/116502872/1997914
>     >     Group Owner: openembedded-devel+owner@lists.openembedded.org
>     <mailto:openembedded-devel%2Bowner@lists.openembedded.org>
>     >     <mailto:openembedded-devel%2Bowner@lists.openembedded.org
>     <mailto:openembedded-devel%252Bowner@lists.openembedded.org>>
>     >     Unsubscribe:
>     >     https://lists.openembedded.org/g/openembedded-devel/unsub
>     >     [raj.khem@gmail.com]
>     >     -=-=-=-=-=-=-=-=-=-=-=-
>     >
>
diff mbox series

Patch

diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index 52ca06ae43..b725c1aa36 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -12,6 +12,7 @@  PTESTS_FAST_META_OE = "\
     cli11 \
     cmocka \
     cunit \
+    dbus-broker \
     duktape \
     exiv2 \
     fuse3 \
diff --git a/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
new file mode 100644
index 0000000000..fac5be1917
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-broker/0001-test-sockopt-loosen-verification-of-stale-pidfds.patch
@@ -0,0 +1,52 @@ 
+From cc7f9da25b103aacbb1595d04af9cb70ef8f43d9 Mon Sep 17 00:00:00 2001
+From: Gyorgy Sarvari <skandigraun@gmail.com>
+Date: Thu, 4 Sep 2025 10:23:36 +0200
+Subject: [PATCH] test/sockopt: loosen verification of stale pidfds
+
+From: David Rheinsberg <david@readahead.eu>
+
+Newer kernels now properly return stale pidfds from AF_UNIX sockets,
+rather than refusing the operation. Ensure that our tests adopt to this
+and properly verify staleness.
+
+Signed-off-by: David Rheinsberg <david@readahead.eu>
+Upstream-Status: Backport [https://github.com/bus1/dbus-broker/commit/fd5c6e191bffcf5b3e6c9abb8b0b03479accc04b]
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+---
+ src/util/test-sockopt.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/src/util/test-sockopt.c b/src/util/test-sockopt.c
+index 04148af..eaa8fba 100644
+--- a/src/util/test-sockopt.c
++++ b/src/util/test-sockopt.c
+@@ -81,17 +81,25 @@ static void test_peerpidfd_client(
+ 
+         r = sockopt_get_peerpidfd(fd, &pidfd);
+         if (r != SOCKOPT_E_UNSUPPORTED) {
+-                if (stale) {
+-                        c_assert(r == SOCKOPT_E_REAPED);
++                if (r == SOCKOPT_E_REAPED) {
++                        /*
++                         * Old kernels refused to return stale pidfds. Hence,
++                         * in that case verify that we expected a stale pidfd.
++                         */
++                        c_assert(stale);
+                 } else {
+                         c_assert(!r);
+                         c_assert(pidfd >= 0);
+ 
+                         r = proc_resolve_pidfd(pidfd, &pid_socket);
+                         c_assert(!r);
+-                        c_assert(pid_socket > 0);
+ 
+-                        c_assert(pid_socket == pid_server);
++                        if (stale) {
++                                c_assert(pid_socket == -1);
++                        } else {
++                                c_assert(pid_socket > 0);
++                                c_assert(pid_socket == pid_server);
++                        }
+                 }
+         }
+ }
diff --git a/meta-oe/recipes-core/dbus/dbus-broker/run-ptest b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
new file mode 100644
index 0000000000..789000523e
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-broker/run-ptest
@@ -0,0 +1,19 @@ 
+#!/bin/sh
+RET=0
+
+run_tests(){
+  for t in *; do
+    if ./$t; then
+      echo PASS: $t
+    else
+      echo FAIL: $t
+      RET=1
+    fi
+  done
+}
+
+cd /usr/lib/dbus-broker/tests/dbus
+run_tests
+cd /usr/lib/dbus-broker/tests/unit
+run_tests
+exit $RET
diff --git a/meta-oe/recipes-core/dbus/dbus-broker_37.bb b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
index f0312181b6..c531f555d2 100644
--- a/meta-oe/recipes-core/dbus/dbus-broker_37.bb
+++ b/meta-oe/recipes-core/dbus/dbus-broker_37.bb
@@ -10,7 +10,10 @@  DEPENDS = "\
     ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux (>= 3.2)', '', d)} \
 "
 
-SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz"
+SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/${BP}.tar.xz \
+           file://0001-test-sockopt-loosen-verification-of-stale-pidfds.patch \
+           file://run-ptest \
+           "
 SRC_URI[sha256sum] = "f819a8db8795fa08c767612e3823fd594694a0990f2543ecf35d6a1a6bf2ab5b"
 
 UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases"
@@ -18,10 +21,11 @@  UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+)"
 
 SYSTEMD_SERVICE:${PN} = "${BPN}.service"
 
-inherit meson pkgconfig systemd features_check
+inherit meson pkgconfig systemd features_check ptest
 
 EXTRA_OEMESON += "-Daudit=${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'true', 'false', d)}"
 EXTRA_OEMESON += "-Dselinux=${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'true', 'false', d)}"
+EXTRA_OEMESON += "-Dtests=${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}"
 
 REQUIRED_DISTRO_FEATURES = "systemd"
 
@@ -36,3 +40,7 @@  RDEPENDS:${PN} += "dbus-common dbus-tools"
 FILES:${PN} += "${nonarch_libdir}/systemd/catalog"
 FILES:${PN} += "${systemd_system_unitdir}"
 FILES:${PN} += "${systemd_user_unitdir}"
+FILES:${PN}-ptest += "${libdir}/${PN}/tests"
+
+# test-sockopt fails to compile with musl without this flag
+CFLAGS:append:libc-musl = "${@bb.utils.contains('PTEST_ENABLED', '1', ' -Wno-error=incompatible-pointer-types ', '', d)}"