From cc0c6211544eeabd2f5d84a49fa4909f23e8e7de Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Tue, 2 Nov 2021 15:32:37 +0000 Subject: [PATCH] x11-wm/plasma5-kwin: unbreak Xwayland support kwin_xwl: Failed to find free X11 connection socket PR: 259614 Approved by: ? --- x11-wm/plasma5-kwin/Makefile | 1 + .../patch-src_xwl_lib_xwaylandsocket.cpp | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 x11-wm/plasma5-kwin/files/patch-src_xwl_lib_xwaylandsocket.cpp 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_lib_xwaylandsocket.cpp b/x11-wm/plasma5-kwin/files/patch-src_xwl_lib_xwaylandsocket.cpp new file mode 100644 index 000000000000..8dcb2c966e48 --- /dev/null +++ b/x11-wm/plasma5-kwin/files/patch-src_xwl_lib_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/lib/xwaylandsocket.cpp.orig 2021-10-26 12:27:37 UTC ++++ src/xwl/lib/xwaylandsocket.cpp +@@ -183,10 +183,17 @@ XwaylandSocket::XwaylandSocket(OperationMode mode) + continue; + } + ++#if defined(Q_OS_LINUX) + const int abstractFileDescriptor = listen_helper(socketFilePath, UnixSocketAddress::Type::Abstract, mode); ++#else ++ const int abstractFileDescriptor = listen_helper(socketFilePath + "_", UnixSocketAddress::Type::Unix, mode); ++#endif + if (abstractFileDescriptor == -1) { + QFile::remove(lockFilePath); + QFile::remove(socketFilePath); ++#if !defined(Q_OS_LINUX) ++ QFile::remove(socketFilePath + "_"); ++#endif + close(unixFileDescriptor); + continue; + } +@@ -212,6 +219,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);