git: d705c2136f52 - main - devel/dbus: Fix busy-loop caused by poll

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Fri, 29 Aug 2025 18:17:51 UTC
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d705c2136f52609d51f60970424d759b1aae18c4

commit d705c2136f52609d51f60970424d759b1aae18c4
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2025-06-07 18:09:19 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2025-08-29 18:17:46 +0000

    devel/dbus: Fix busy-loop caused by poll
    
    PR:             287361
---
 devel/dbus/Makefile                                 |  2 +-
 devel/dbus/files/patch-dbus_dbus-transport-socket.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/devel/dbus/Makefile b/devel/dbus/Makefile
index 1ecf854e8588..9ca1aa15e5d7 100644
--- a/devel/dbus/Makefile
+++ b/devel/dbus/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	dbus
 DISTVERSION=	1.16.2
-PORTREVISION=	3
+PORTREVISION=	4
 PORTEPOCH=	1
 CATEGORIES=	devel gnome
 MASTER_SITES=	https://dbus.freedesktop.org/releases/dbus/
diff --git a/devel/dbus/files/patch-dbus_dbus-transport-socket.c b/devel/dbus/files/patch-dbus_dbus-transport-socket.c
new file mode 100644
index 000000000000..15a5d2eedcd0
--- /dev/null
+++ b/devel/dbus/files/patch-dbus_dbus-transport-socket.c
@@ -0,0 +1,15 @@
+https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/526
+
+--- dbus/dbus-transport-socket.c.orig	2025-02-27 16:29:06 UTC
++++ dbus/dbus-transport-socket.c
+@@ -1208,8 +1208,8 @@ socket_do_iteration (DBusTransport *transport,
+             do_io_error (transport);
+           else
+             {
+-              dbus_bool_t need_read = (poll_fd.revents & _DBUS_POLLIN) > 0;
+-              dbus_bool_t need_write = (poll_fd.revents & _DBUS_POLLOUT) > 0;
++              dbus_bool_t need_read = (poll_fd.revents & (_DBUS_POLLIN | _DBUS_POLLHUP)) > 0;
++              dbus_bool_t need_write = (poll_fd.revents & (_DBUS_POLLOUT | _DBUS_POLLHUP)) > 0;
+ 	      dbus_bool_t authentication_completed;
+ 
+               _dbus_verbose ("in iteration, need_read=%d need_write=%d\n",