diff --git a/gui-apps/deskflow/deskflow-1.23.0.ebuild b/gui-apps/deskflow/deskflow-1.23.0.ebuild index 54e8693d0f04a..aa89a1fcfd341 100644 --- a/gui-apps/deskflow/deskflow-1.23.0.ebuild +++ b/gui-apps/deskflow/deskflow-1.23.0.ebuild @@ -58,6 +58,10 @@ DOCS=( doc/user/configuration.md ) +PATCHES=( + "${FILESDIR}"/${P}-default-proto.patch +) + src_configure() { local mycmakeargs=( -DBUILD_GUI=$(usex gui) diff --git a/gui-apps/deskflow/files/deskflow-1.23.0-default-proto.patch b/gui-apps/deskflow/files/deskflow-1.23.0-default-proto.patch new file mode 100644 index 0000000000000..a8e349a2ffc4f --- /dev/null +++ b/gui-apps/deskflow/files/deskflow-1.23.0-default-proto.patch @@ -0,0 +1,25 @@ + fix: server: initialize the m_protocol member with a default value + + It is likely random whether the server works or not without + a manually configured protocol option, which is neither documented + nor enforced to be set. + With a random uninitialized value in m_protocol, this can happen: + [2025-08-03T12:39:57] NOTE: accepted client connection + [2025-08-03T12:39:57] FATAL: a runtime error occurred: XInvalidProtocol + + Reports of "it works with debug enabled" are likely due to having + parts of the memory space the server object is allocated into being + cleared, and thus having a 0 (Synergy) startup value. + + This patch had been modified to apply against 1.23.0 +--- a/src/lib/server/Server.h ++++ b/src/lib/server/Server.h +@@ -358,7 +358,7 @@ private: + }; + + // used in hello message sent to the client +- ENetworkProtocol m_protocol; ++ ENetworkProtocol m_protocol = ENetworkProtocol::kSynergy; + + // the primary screen client + PrimaryClient *m_primaryClient;