Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Oct 2025 11:46:41 GMT
From:      Max Brazhnikov <makc@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: b7d53d8438e6 - main - x11/sddm: add workaround for Wayland sessions.
Message-ID:  <202510241146.59OBkfGL002416@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by makc:

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

commit b7d53d8438e66f84768f28cbccc92a04d5df76b8
Author:     Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2025-10-24 11:45:43 +0000
Commit:     Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2025-10-24 11:45:57 +0000

    x11/sddm: add workaround for Wayland sessions.
    
    Mimic seatd and put the underlying tty in raw mode
    to prevent killing Wayland sessions on CTRL+C.
    
    Upstream reports:
    KDE:            https://bugs.kde.org/505552
    SDDM:           https://github.com/sddm/sddm/issues/1986
    
    PR:             286592
    Submitted by:   jsm, jhale
---
 x11/sddm/Makefile                                  |  2 +-
 .../files/patch-src_common_VirtualTerminal.cpp     | 30 ++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/x11/sddm/Makefile b/x11/sddm/Makefile
index 8720870a8c15..5d6522bf1528 100644
--- a/x11/sddm/Makefile
+++ b/x11/sddm/Makefile
@@ -2,7 +2,7 @@ PORTNAME=	sddm
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.21.0-36
 DISTVERSIONSUFFIX=	-gc2b97dd
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	x11
 
 MAINTAINER=	kde@FreeBSD.org
diff --git a/x11/sddm/files/patch-src_common_VirtualTerminal.cpp b/x11/sddm/files/patch-src_common_VirtualTerminal.cpp
new file mode 100644
index 000000000000..89717f5bd0b9
--- /dev/null
+++ b/x11/sddm/files/patch-src_common_VirtualTerminal.cpp
@@ -0,0 +1,30 @@
+--- src/common/VirtualTerminal.cpp.orig	2025-01-31 09:57:01 UTC
++++ src/common/VirtualTerminal.cpp
+@@ -29,6 +29,7 @@
+ #include <signal.h>
+ #ifdef __FreeBSD__
+ #include <sys/consio.h>
++#include <termios.h>
+ #else
+ #include <linux/vt.h>
+ #include <linux/kd.h>
+@@ -217,6 +218,19 @@ out:
+                 // set graphics mode to prevent flickering
+                 if (ioctl(fd, KDSETMODE, KD_GRAPHICS) < 0)
+                     qWarning("Failed to set graphics mode for VT %d: %s", vt, strerror(errno));
++
++#ifdef __FreeBSD__
++                struct termios tios;
++
++                if (tcgetattr(fd, &tios) != 0) {
++                    qFatal("Failed to get term attrs for VT %d: %s", vt, strerror(errno));
++                } else {
++                cfmakeraw(&tios);
++                    if (tcsetattr(fd, TCSAFLUSH, &tios) != 0) {
++                        qWarning("Failed to set term attrs for VT %d: %s", vt, strerror(errno));
++                    }
++                }
++#endif
+ 
+                 // it's possible that the current VT was left in a broken
+                 // combination of states (KD_GRAPHICS with VT_AUTO) that we


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202510241146.59OBkfGL002416>