git: 2ca25d708908 - main - x11/konsole: avoid weird message when exiting last shell
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 18 Oct 2021 22:03:59 UTC
The branch main has been updated by adridg:
URL: https://cgit.FreeBSD.org/ports/commit/?id=2ca25d7089085af7f8a9201beba4d10ff4cdf1da
commit 2ca25d7089085af7f8a9201beba4d10ff4cdf1da
Author: Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2021-10-18 21:52:49 +0000
Commit: Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2021-10-18 21:52:49 +0000
x11/konsole: avoid weird message when exiting last shell
Konsole complains about "kernel" still running in the terminal
when exiting the last shell in the last tab; this only shows
up if PID 0 is visible (depends on hardening options).
Avoid that (on Linux, apparently the invalid PID equals the
invalid foreground group ID).
PR: 258996
Reported by: alt2600@icloud.com
---
x11/konsole/Makefile | 1 +
x11/konsole/files/patch-src_MainWindow.cpp | 25 +++++++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/x11/konsole/Makefile b/x11/konsole/Makefile
index 5c4bc371e777..ade7a068cd68 100644
--- a/x11/konsole/Makefile
+++ b/x11/konsole/Makefile
@@ -1,5 +1,6 @@
PORTNAME= konsole
DISTVERSION= ${KDE_APPLICATIONS_VERSION}
+PORTREVISION= 1
CATEGORIES= x11 kde kde-applications # kde kde-applications-applications
MAINTAINER= kde@FreeBSD.org
diff --git a/x11/konsole/files/patch-src_MainWindow.cpp b/x11/konsole/files/patch-src_MainWindow.cpp
new file mode 100644
index 000000000000..57f3f4d6d33a
--- /dev/null
+++ b/x11/konsole/files/patch-src_MainWindow.cpp
@@ -0,0 +1,25 @@
+From 00d565eedea5be0b5c9ad66b29bdf14c63a5e035 Mon Sep 17 00:00:00 2001
+From: Adriaan de Groot <groot@kde.org>
+Date: Mon, 18 Oct 2021 11:07:30 +0200
+Subject: [PATCH 2/2] Special-case PID 0 on FreeBSD
+
+PID 0 is the kernel; when the shell exits, the process ID for
+the session becomes 0. Downstream bug report
+ https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258996
+--- src/MainWindow.cpp.orig 2021-10-04 22:10:38 UTC
++++ src/MainWindow.cpp
+@@ -609,6 +609,14 @@ bool MainWindow::queryClose()
+ continue;
+ }
+
++ // On FreeBSD, after exiting the shell, the foreground GID is
++ // an invalid value, and the shell PID is 0. Those are not equal,
++ // so isForegroundProcessActive() returns true -- leading to a
++ // complaint about "kernel" here. Special-case PID 0 to avoid that.
++ if (session->processId() == 0) {
++ continue;
++ }
++
+ const QString defaultProc = session->program().split(QLatin1Char('/')).last();
+ const QString currentProc = session->foregroundProcessName().split(QLatin1Char('/')).last();
+