From nobody Fri Oct 10 17:28:30 2025 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cjtxq0mcdz6Bdj8; Fri, 10 Oct 2025 17:28:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cjtxq0B1Tz3pNf; Fri, 10 Oct 2025 17:28:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1760117311; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sMb6I8xkerxb/sJT9PqCRoR9IeAOkw0V7CtdCsLUo9g=; b=heUqa+HBhQm3luSWZ+fZUXsfPnGj2S7hFU2B96LRRL7UG45murOjDFCioX30skhNLk3tmc U81szPos/RPwzi4O2DC2C1RTBy1SV3P3E4iBpP/EFVXlCbKEka5ZU/pSBlhzMM6eT8Gwla qNAE8FgkZry+O2SEqMK8Hg6FdfENaxGOfGDUyxTIShVGiFb+ECuLGGbyNfLLKpnieExMTj aPPlyk/DMoW5D5RCCRLuGRO9H9yWY3l4qdtFk36l1H5PEk0drJywtLEYBzTeGwajEYOv0H 9pxwCkqI680U1qE0A9Qg2fZh88t9u3MAcbIrJa4J/FeQdxtFSMmQ8jhl6LUYsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1760117311; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sMb6I8xkerxb/sJT9PqCRoR9IeAOkw0V7CtdCsLUo9g=; b=T7WUhMdD265ek72UPWLjTaYnZjEbpTBLdFFYfqUYcQOvPe0pRtd3Oi1PJfpiVrjY+s5HfF DAm3DImGL3WaBgFZs0xq/cQnr/0+UDBBZoMHFb3RMYqV5EE0FcQv+8eiIp+lucpIYqmz0i /LNFQDY6ezAcFTOq0xX+zGXDeDx2oEhmFIHpajnUf1E03rlEF7x5dzOfeFFd7F8pvw+zgI aF7AN26YLWLAYJfEu5ty/DpcrmOY0Lzzj1mvb0dmSr0U0JnG6Emrr91UGltGtJhdZkXCcK +Y/qyYX2KQrjgu3Dx5PqvTvgr2JBAfyvgmMf60ZwjhE25fEZDmERCfw1BLr78A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1760117311; a=rsa-sha256; cv=none; b=gp4wajbcs+6lDbzkQQRoINIkcM9zxd26UW7ZrO7hX9/5p5kuNfmwTp2Yictr+CLFTePKK6 rVC6qybtSh4kqEExAvrkLNaq7Oy82oOd+5RFhkIJw8YknNizDg/e+w/+6cnZ6bcaBe0coj bf1mpfdsuq+exnn4gYSwViI/1I9YUZpvaf+kt7ZBihEtCZZkuKVBG0Ravm/VEBLrMiva0P f5GD7Io1hFP129c5eZ91U0YErQyxIvACvZOL3PTz3lZ42+zqCHSTOsRJmODcsX0g1YJnAO wm9EKaiCaqyhTz9vJlGYvZ3S7VA5ElSgHIc+pRQRqW9ucvUKVsRz07aD95QdIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cjtxp6g3bz1C2Z; Fri, 10 Oct 2025 17:28:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 59AHSUaU029234; Fri, 10 Oct 2025 17:28:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59AHSUHb029231; Fri, 10 Oct 2025 17:28:30 GMT (envelope-from git) Date: Fri, 10 Oct 2025 17:28:30 GMT Message-Id: <202510101728.59AHSUHb029231@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Gleb Popov Subject: git: 3661102d265e - main - devel/qt6-base: Pull in upstream patches fixing the handling of SOCK_SEQPACKET sockets List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arrowd X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3661102d265eb678c9155da523be84131058b342 Auto-Submitted: auto-generated The branch main has been updated by arrowd: URL: https://cgit.FreeBSD.org/ports/commit/?id=3661102d265eb678c9155da523be84131058b342 commit 3661102d265eb678c9155da523be84131058b342 Author: Gleb Popov AuthorDate: 2025-10-10 17:27:32 +0000 Commit: Gleb Popov CommitDate: 2025-10-10 17:28:22 +0000 devel/qt6-base: Pull in upstream patches fixing the handling of SOCK_SEQPACKET sockets --- devel/qt6-base/Makefile | 1 + devel/qt6-base/files/patch-sock_seqpacket | 105 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/devel/qt6-base/Makefile b/devel/qt6-base/Makefile index eba64f948e61..fc95beff7d2e 100644 --- a/devel/qt6-base/Makefile +++ b/devel/qt6-base/Makefile @@ -1,5 +1,6 @@ PORTNAME= base DISTVERSION= ${QT6_VERSION} +PORTREVISION= 1 CATEGORIES= devel PKGNAMEPREFIX= qt6- diff --git a/devel/qt6-base/files/patch-sock_seqpacket b/devel/qt6-base/files/patch-sock_seqpacket new file mode 100644 index 000000000000..0ce628239939 --- /dev/null +++ b/devel/qt6-base/files/patch-sock_seqpacket @@ -0,0 +1,105 @@ +https://codereview.qt-project.org/c/qt/qtbase/+/681531 +https://codereview.qt-project.org/c/qt/qtbase/+/682568 + +From 8e06365bee31ef5a1980b7b24d1564e3d769cfc7 Mon Sep 17 00:00:00 2001 +From: Gleb Popov +Date: Thu, 2 Oct 2025 13:14:54 +0300 +Subject: [PATCH] QNativeSocketEngine::read: Only treat readBytes==0 as a EOF + condition with stream sockets + +This change also covers SOCK_SEQPACKET type of sockets, which isn't great, +but allows to avoid an endless polling loop when waiting for read on +a disconnected socket. + +Pick-to: 6.10 +Change-Id: I6117b97c2c9b775e9e6fe9757bf4374365e3227d +Reviewed-by: Thiago Macieira +--- + src/network/socket/qnativesocketengine.cpp | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git src/network/socket/qnativesocketengine.cpp src/network/socket/qnativesocketengine.cpp +index f33e5a26bd94..4c83ef7e5df6 100644 +--- src/network/socket/qnativesocketengine.cpp ++++ src/network/socket/qnativesocketengine.cpp +@@ -910,12 +910,11 @@ qint64 QNativeSocketEngine::read(char *data, qint64 maxSize) + + qint64 readBytes = d->nativeRead(data, maxSize); + +- // Handle remote close +- if (readBytes == 0 && (d->socketType == QAbstractSocket::TcpSocket +-#ifndef QT_NO_SCTP +- || d->socketType == QAbstractSocket::SctpSocket +-#endif +- )) { ++ // Handle remote close. ++ // Non-datagram socket types signal the EOF state with a zero read. ++ // Note that it is perfectly fine to have a 0-byte message with datagram ++ // sockets (SOCK_DGRAM or SOCK_SEQPACKET). ++ if (readBytes == 0 && d->socketType != QAbstractSocket::UdpSocket) { + d->setError(QAbstractSocket::RemoteHostClosedError, + QNativeSocketEnginePrivate::RemoteHostClosedErrorString); + close(); +-- +2.43.0 + +From a395c091a56781352113670b72ba619367486e7e Mon Sep 17 00:00:00 2001 +From: Gleb Popov +Date: Tue, 7 Oct 2025 10:53:18 +0300 +Subject: [PATCH] Teach QNativeSocketEnginePrivate::fetchConnectionParameters() + about SOCK_SEQPACKET + +Pick-to: 6.10 +Change-Id: I4136ef3b4c198e3bd155884bde53171bd34959e4 +Reviewed-by: Thiago Macieira +--- + .../socket/qnativesocketengine_unix.cpp | 23 ++++++++++++------- + 1 file changed, 15 insertions(+), 8 deletions(-) + +diff --git src/network/socket/qnativesocketengine_unix.cpp src/network/socket/qnativesocketengine_unix.cpp +index b5fbb5c2e003..bcd9aecdea97 100644 +--- src/network/socket/qnativesocketengine_unix.cpp ++++ src/network/socket/qnativesocketengine_unix.cpp +@@ -1244,6 +1244,7 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters() + QT_SOCKOPTLEN_T valueSize = sizeof(int); + if (::getsockopt(socketDescriptor, SOL_SOCKET, SO_TYPE, &value, &valueSize) == 0) { + if (value == SOCK_STREAM) { ++ socketType = QAbstractSocket::TcpSocket; + #ifndef QT_NO_SCTP + if (option(QNativeSocketEngine::MaxStreamsSocketOption) != -1) { + socketType = QAbstractSocket::SctpSocket; +@@ -1266,17 +1267,23 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters() + return false; + } + } +- } else { +- socketType = QAbstractSocket::TcpSocket; + } +-#else +- socketType = QAbstractSocket::TcpSocket; ++#endif ++ } else if (value == SOCK_DGRAM) { ++ socketType = QAbstractSocket::UdpSocket; ++#ifdef SOCK_SEQPACKET ++ } else if (value == SOCK_SEQPACKET) { ++ // We approximate the SEQPACKET socket type to TCP, because ++ // this enum is actually used to determine if the socket type has ++ // a notion of connection. SOCK_DGRAM are connectionless, while ++ // SOCK_STREAM and SOCK_SEQPACKET are connection-orientired. ++ // This mapping is still suboptimal, because it is possible to send ++ // a 0-byte packet via SEQPACKET socket and Qt will treat it as ++ // a disconnect. ++ socketType = QAbstractSocket::TcpSocket; + #endif + } else { +- if (value == SOCK_DGRAM) +- socketType = QAbstractSocket::UdpSocket; +- else +- socketType = QAbstractSocket::UnknownSocketType; ++ socketType = QAbstractSocket::UnknownSocketType; + } + } + #if defined (QNATIVESOCKETENGINE_DEBUG) +-- +2.43.0 +