sdbusplus: Update patches for GCC 15 Update asio eventfd patch and add pyproject license fix patch for python3-sdbus++ under GCC 15 / setuptools. Tested: Verified build with GCC 15 and C++23 across gBMC platforms. - platform11: http://fusion2/3ff2006d-9c03-3f0c-99fd-bcefc6aaca1f - platform11: http://fusion2/982d88b5-28f9-38ef-a3a2-d824b919c13c - platform5: http://fusion2/a7e89bcd-86a0-33b2-8f33-2bb24ef3afb5 - platform15: http://fusion2/e56dcb19-6dcd-35a0-b5ee-30740fbf27df - platform17: http://fusion2/d0e6af61-eb95-3a70-a6a3-d1bdab987ea2 - platform18: http://fusion2/cda6ba3a-58f5-3907-b584-04786b9fe634 - platform25: http://fusion2/714cc620-6f0a-3bfd-90dd-95356b62b54b Google-Bug-Id: 482144905 Change-Id: I64c9a1ddddfd41ecd6bcbb1676183624bc8ded73 Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/recipes-extended/sdbusplus/python3-sdbus++_%.bbappend b/recipes-extended/sdbusplus/python3-sdbus++_%.bbappend new file mode 100644 index 0000000..d5b05f3 --- /dev/null +++ b/recipes-extended/sdbusplus/python3-sdbus++_%.bbappend
@@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend:gbmc := "${THISDIR}/sdbusplus:" + +SRC_URI:append:gbmc = " file://0001-python3-sdbus-Fix-pyproject-license.patch"
diff --git a/recipes-extended/sdbusplus/sdbusplus/0001-asio-Leverage-sd-bus-rqueue-eventfd.patch b/recipes-extended/sdbusplus/sdbusplus/0001-asio-Leverage-sd-bus-rqueue-eventfd.patch index a12a96b..9e946a6 100644 --- a/recipes-extended/sdbusplus/sdbusplus/0001-asio-Leverage-sd-bus-rqueue-eventfd.patch +++ b/recipes-extended/sdbusplus/sdbusplus/0001-asio-Leverage-sd-bus-rqueue-eventfd.patch
@@ -1,4 +1,4 @@ -From 18a4b95dcef9433aadfd976315694d6ee397859f Mon Sep 17 00:00:00 2001 +From 506f81eaf7113107fe2c6cabca761c2c15b956fc Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" <wak@google.com> Date: Wed, 20 Aug 2025 11:08:31 -0700 Subject: [PATCH] asio: Leverage sd-bus rqueue eventfd @@ -7,38 +7,39 @@ Signed-off-by: William A. Kennington III <wak@google.com> Signed-off-by: Willy Tu <wltu@google.com> --- - include/sdbusplus/asio/connection.hpp | 40 +++++++++++++++++++++++++-- + include/sdbusplus/asio/connection.hpp | 37 +++++++++++++++++++++++++-- include/sdbusplus/bus.hpp | 4 +++ - include/sdbusplus/sdbus.hpp | 6 ++++ + include/sdbusplus/sdbus.hpp | 6 +++++ include/sdbusplus/test/sdbus_mock.hpp | 1 + - 4 files changed, 48 insertions(+), 3 deletions(-) + 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/include/sdbusplus/asio/connection.hpp b/include/sdbusplus/asio/connection.hpp -index 841c6d7..b5021c1 100644 +index 8958cdf..9a49344 100644 --- a/include/sdbusplus/asio/connection.hpp +++ b/include/sdbusplus/asio/connection.hpp -@@ -54,14 +54,18 @@ class connection : public sdbusplus::bus_t - // default to system bus - connection(boost::asio::io_context& io) : - sdbusplus::bus_t(sdbusplus::bus::new_default()), io_(io), -- socket(io_.get_executor(), get_fd()) +@@ -59,15 +59,20 @@ class connection : public sdbusplus::bus_t + boost::asio::io_context& io, + sdbusplus::bus_t&& bus = sdbusplus::bus::new_default()) : + sdbusplus::bus_t(std::move(bus)), io_(io), +- socket(io_.get_executor(), get_fd()), timer(io_.get_executor()) + socket(io_.get_executor(), get_fd()), -+ queue_eventfd(io.get_executor(), get_rqueue_eventfd()) ++ queue_eventfd(io.get_executor(), get_rqueue_eventfd()), ++ timer(io_.get_executor()) { read_immediate(); + queue_wait(); } connection(boost::asio::io_context& io, sd_bus* bus) : -- sdbusplus::bus_t(bus), io_(io), socket(io_.get_executor(), get_fd()) -+ sdbusplus::bus_t(bus), io_(io), socket(io_.get_executor(), get_fd()), -+ queue_eventfd(io.get_executor(), get_rqueue_eventfd()) + sdbusplus::bus_t(bus), io_(io), socket(io_.get_executor(), get_fd()), ++ queue_eventfd(io.get_executor(), get_rqueue_eventfd()), + timer(io_.get_executor()) { read_immediate(); + queue_wait(); } ~connection() { -@@ -69,6 +73,7 @@ class connection : public sdbusplus::bus_t +@@ -75,6 +80,7 @@ class connection : public sdbusplus::bus_t // sd_bus object to avoid a double close() Ignore return codes here, // because there's nothing we can do about errors socket.release(); @@ -46,18 +47,18 @@ } /** @brief Perform an asynchronous send of a message, executing the handler -@@ -313,7 +318,7 @@ class connection : public sdbusplus::bus_t +@@ -297,7 +303,7 @@ class connection : public sdbusplus::bus_t private: boost::asio::io_context& io_; - boost::asio::posix::stream_descriptor socket; + boost::asio::posix::stream_descriptor socket, queue_eventfd; + boost::asio::steady_timer timer; - void read_wait() + void process() +@@ -403,6 +409,33 @@ class connection : public sdbusplus::bus_t { -@@ -347,6 +352,35 @@ class connection : public sdbusplus::bus_t - } - }); + boost::asio::post(io_, std::bind_front(&connection::process, this)); } + void proc_queue_next() + { @@ -75,27 +76,25 @@ + queue_eventfd.async_read_some( + boost::asio::null_buffers(), + [&](const boost::system::error_code& ec, std::size_t) { -+ if (ec) -+ { -+ return; -+ } -+ proc_queue_next(); -+ }); ++ if (ec) ++ { ++ return; ++ } ++ proc_queue_next(); ++ }); + } + void queue_immediate() + { -+ boost::asio::post(io_, [&] { -+ proc_queue_next(); -+ }); ++ boost::asio::post(io_, [&] { proc_queue_next(); }); + } }; } // namespace asio diff --git a/include/sdbusplus/bus.hpp b/include/sdbusplus/bus.hpp -index 7e834c0..6a8f905 100644 +index 836b2f8..8dc453a 100644 --- a/include/sdbusplus/bus.hpp +++ b/include/sdbusplus/bus.hpp -@@ -412,6 +412,10 @@ struct bus +@@ -417,6 +417,10 @@ struct bus_t { return _intf->sd_bus_get_fd(_bus.get()); } @@ -104,22 +103,22 @@ + return _intf->sd_bus_get_rqueue_eventfd(_bus.get()); + } - /** @brief Attach the bus with a sd-event event loop object. - * + auto get_events() + { diff --git a/include/sdbusplus/sdbus.hpp b/include/sdbusplus/sdbus.hpp -index 9022f1c..1c6ed03 100644 +index fef7d21..26e7a15 100644 --- a/include/sdbusplus/sdbus.hpp +++ b/include/sdbusplus/sdbus.hpp -@@ -69,6 +69,7 @@ class SdBusInterface - - virtual sd_event* sd_bus_get_event(sd_bus* bus) = 0; - virtual int sd_bus_get_fd(sd_bus* bus) = 0; -+ virtual int sd_bus_get_rqueue_eventfd(sd_bus* bus) = 0; +@@ -68,6 +68,7 @@ class SdBusInterface + virtual int sd_bus_get_events(sd_bus* bus) = 0; + virtual int sd_bus_get_timeout(sd_bus* bus, uint64_t* timeout_usec) = 0; virtual int sd_bus_get_unique_name(sd_bus* bus, const char** unique) = 0; ++ virtual int sd_bus_get_rqueue_eventfd(sd_bus* bus) = 0; virtual int sd_bus_list_names(sd_bus* bus, char*** acquired, -@@ -315,6 +316,11 @@ class SdBusImpl : public SdBusInterface - return ::sd_bus_get_fd(bus); + char*** activatable) = 0; +@@ -329,6 +330,11 @@ class SdBusImpl : public SdBusInterface + return ::sd_bus_get_timeout(bus, timeout_usec); } + int sd_bus_get_rqueue_eventfd(sd_bus* bus) override @@ -131,17 +130,17 @@ { return ::sd_bus_get_unique_name(bus, unique); diff --git a/include/sdbusplus/test/sdbus_mock.hpp b/include/sdbusplus/test/sdbus_mock.hpp -index 6e1a1a3..fa517c6 100644 +index 704424e..69b628e 100644 --- a/include/sdbusplus/test/sdbus_mock.hpp +++ b/include/sdbusplus/test/sdbus_mock.hpp -@@ -59,6 +59,7 @@ class SdBusMock : public SdBusInterface - - MOCK_METHOD(sd_event*, sd_bus_get_event, (sd_bus*), (override)); - MOCK_METHOD(int, sd_bus_get_fd, (sd_bus*), (override)); -+ MOCK_METHOD(int, sd_bus_get_rqueue_eventfd, (sd_bus*), (override)); +@@ -66,6 +66,7 @@ class SdBusMock : public SdBusInterface + (override)); MOCK_METHOD(int, sd_bus_get_unique_name, (sd_bus*, const char**), (override)); ++ MOCK_METHOD(int, sd_bus_get_rqueue_eventfd, (sd_bus*), (override)); + MOCK_METHOD(int, sd_bus_list_names, (sd_bus*, char***, char***), + (override)); -- -2.51.0.261.g7ce5a0a67e-goog +2.55.0.737.g08866a6d13-goog
diff --git a/recipes-extended/sdbusplus/sdbusplus/0001-python3-sdbus-Fix-pyproject-license.patch b/recipes-extended/sdbusplus/sdbusplus/0001-python3-sdbus-Fix-pyproject-license.patch new file mode 100644 index 0000000..3894c69 --- /dev/null +++ b/recipes-extended/sdbusplus/sdbusplus/0001-python3-sdbus-Fix-pyproject-license.patch
@@ -0,0 +1,27 @@ +From e08ca5ff81ed4722319172a9bb30ca23daf318c9 Mon Sep 17 00:00:00 2001 +From: Willy Tu <wltu@google.com> +Date: Thu, 5 Feb 2026 09:18:30 +0000 +Subject: [PATCH] python3-sdbus++: Fix pyproject license + +Change-Id: I80a8b1f1e3cdbef6a55952eb1f60cd86820f2a94 +Signed-off-by: Willy Tu <wltu@google.com> +--- + tools/pyproject.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/pyproject.toml b/tools/pyproject.toml +index b87bd65..410b29f 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" + [project] + name = "sdbusplus" + version = "1.0" +-license = "Apache-2.0" ++license = {text = "Apache-2.0"} + urls = { Homepage = "http://github.com/openbmc/sdbusplus" } + dependencies = ["inflection", "mako", "pyyaml"] + +-- +2.53.0.rc2.204.g2597b5adb4-goog +