git: a11f9c00e714 - 2021Q4 - x11-wm/plasma5-kwin: unbreak Xwayland support after 4ea20bee5063

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Mon, 08 Nov 2021 17:53:24 UTC
The branch 2021Q4 has been updated by jbeich:

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

commit a11f9c00e714212a48009593bb5c71c62dd47515
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2021-11-02 15:32:37 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2021-11-08 17:35:36 +0000

    x11-wm/plasma5-kwin: unbreak Xwayland support after 4ea20bee5063
    
    kwin_xwl: Failed to find free X11 connection socket
    
    PR:             259614
    Approved by:    tcberner
    
    (cherry picked from commit 03033c16bb99787ae83ea1a938550adfc1a6660a)
---
 x11-wm/plasma5-kwin/Makefile                       |  1 +
 .../files/patch-src_xwl_xwaylandsocket.cpp         | 35 ++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/x11-wm/plasma5-kwin/Makefile b/x11-wm/plasma5-kwin/Makefile
index 53230df60d29..64a87653bc99 100644
--- a/x11-wm/plasma5-kwin/Makefile
+++ b/x11-wm/plasma5-kwin/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	kwin
 DISTVERSION=	${KDE_PLASMA_VERSION}
+PORTREVISION=	1
 CATEGORIES=	x11-wm kde kde-plasma
 
 MAINTAINER=	kde@FreeBSD.org
diff --git a/x11-wm/plasma5-kwin/files/patch-src_xwl_xwaylandsocket.cpp b/x11-wm/plasma5-kwin/files/patch-src_xwl_xwaylandsocket.cpp
new file mode 100644
index 000000000000..ad44c2215dca
--- /dev/null
+++ b/x11-wm/plasma5-kwin/files/patch-src_xwl_xwaylandsocket.cpp
@@ -0,0 +1,35 @@
+$ kwin_wayland --xwayland
+[...]
+kwin_xwl: Failed to find free X11 connection socket
+Failed to establish X11 socket
+
+--- src/xwl/xwaylandsocket.cpp.orig	2021-08-31 11:41:03 UTC
++++ src/xwl/xwaylandsocket.cpp
+@@ -179,10 +179,17 @@ XwaylandSocket::XwaylandSocket()
+             continue;
+         }
+ 
++#if defined(Q_OS_LINUX)
+         const int abstractFileDescriptor = listen_helper(socketFilePath, UnixSocketAddress::Type::Abstract);
++#else
++        const int abstractFileDescriptor = listen_helper(socketFilePath + "_", UnixSocketAddress::Type::Unix);
++#endif
+         if (abstractFileDescriptor == -1) {
+             QFile::remove(lockFilePath);
+             QFile::remove(socketFilePath);
++#if !defined(Q_OS_LINUX)
++            QFile::remove(socketFilePath + "_");
++#endif
+             close(unixFileDescriptor);
+             continue;
+         }
+@@ -208,6 +215,9 @@ XwaylandSocket::~XwaylandSocket()
+     }
+     if (!m_socketFilePath.isEmpty()) {
+         QFile::remove(m_socketFilePath);
++#if !defined(Q_OS_LINUX)
++        QFile::remove(m_socketFilePath + "_");
++#endif
+     }
+     if (!m_lockFilePath.isEmpty()) {
+         QFile::remove(m_lockFilePath);