aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesper Schmitz Mouridsen <jsm@FreeBSD.org>2021-05-08 16:31:51 +0000
committerJesper Schmitz Mouridsen <jsm@FreeBSD.org>2021-05-08 16:52:00 +0000
commit8f82c71ac6b55717709d88c2cdf44419b6394aae (patch)
tree4c0b1cc75064c37f6e0c36b5d20a3a94e1746aa5
parentbee2bf6feed6be2c3ebe117618a63ece64d9e6d7 (diff)
downloadports-8f82c71ac6b55717709d88c2cdf44419b6394aae.tar.gz
ports-8f82c71ac6b55717709d88c2cdf44419b6394aae.zip
x11-wm/lxqt-session: Update to 0.17.1
Add FreeBSD reaper logic implementation from upstream by added patches.
-rw-r--r--x11-wm/lxqt-session/Makefile2
-rw-r--r--x11-wm/lxqt-session/distinfo6
-rw-r--r--x11-wm/lxqt-session/files/patch-lxqt-session_CMakeLists.txt13
-rw-r--r--x11-wm/lxqt-session/files/patch-lxqt-session_src_procreaper.cpp73
-rw-r--r--x11-wm/lxqt-session/pkg-plist9
5 files changed, 97 insertions, 6 deletions
diff --git a/x11-wm/lxqt-session/Makefile b/x11-wm/lxqt-session/Makefile
index 3e0a1b6495a2..4be1879679a5 100644
--- a/x11-wm/lxqt-session/Makefile
+++ b/x11-wm/lxqt-session/Makefile
@@ -1,7 +1,7 @@
# Created by: Olivier Duchateau
PORTNAME= lxqt-session
-PORTVERSION= 0.16.0
+PORTVERSION= 0.17.1
CATEGORIES= x11-wm
MASTER_SITES= LXQT
diff --git a/x11-wm/lxqt-session/distinfo b/x11-wm/lxqt-session/distinfo
index 1bfa52db8cac..186fddb236c9 100644
--- a/x11-wm/lxqt-session/distinfo
+++ b/x11-wm/lxqt-session/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1605365870
-SHA256 (lxqt/lxqt-session-0.16.0.tar.xz) = 547e01e173921357245fb938718bd2401b38e73245cdcbecf195130e856d4959
-SIZE (lxqt/lxqt-session-0.16.0.tar.xz) = 180084
+TIMESTAMP = 1618785099
+SHA256 (lxqt/lxqt-session-0.17.1.tar.xz) = d9058ceedb355a43ea2ef070292fc30b0fb740640cf0b579131aaefbac779c47
+SIZE (lxqt/lxqt-session-0.17.1.tar.xz) = 178976
diff --git a/x11-wm/lxqt-session/files/patch-lxqt-session_CMakeLists.txt b/x11-wm/lxqt-session/files/patch-lxqt-session_CMakeLists.txt
new file mode 100644
index 000000000000..8e559e29049c
--- /dev/null
+++ b/x11-wm/lxqt-session/files/patch-lxqt-session_CMakeLists.txt
@@ -0,0 +1,13 @@
+--- lxqt-session/CMakeLists.txt.orig 2021-04-16 16:36:14 UTC
++++ lxqt-session/CMakeLists.txt
+@@ -71,6 +71,10 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ target_link_libraries(lxqt-session
+ ${PROCPS_LIBRARIES}
+ )
++elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
++ target_link_libraries(lxqt-session
++ -lutil
++ )
+ endif()
+
+ if (WITH_LIBUDEV)
diff --git a/x11-wm/lxqt-session/files/patch-lxqt-session_src_procreaper.cpp b/x11-wm/lxqt-session/files/patch-lxqt-session_src_procreaper.cpp
new file mode 100644
index 000000000000..ed12c507f10f
--- /dev/null
+++ b/x11-wm/lxqt-session/files/patch-lxqt-session_src_procreaper.cpp
@@ -0,0 +1,73 @@
+--- lxqt-session/src/procreaper.cpp.orig 2021-04-16 16:36:14 UTC
++++ lxqt-session/src/procreaper.cpp
+@@ -30,7 +30,13 @@
+ #if defined(Q_OS_LINUX)
+ #include <sys/prctl.h>
+ #include <proc/readproc.h>
++#elif defined(Q_OS_FREEBSD)
++#include <sys/procctl.h>
++#include <libutil.h>
++#include <sys/user.h>
++#include <signal.h>
+ #endif
++#include <unistd.h>
+ #include <cstring>
+ #include <cerrno>
+ #include <sys/wait.h>
+@@ -42,6 +48,10 @@ ProcReaper::ProcReaper()
+ int result = prctl(PR_SET_CHILD_SUBREAPER, 1);
+ if (result != 0)
+ qCWarning(SESSION) << "Unable to to set PR_SET_CHILD_SUBREAPER, " << result << " - " << strerror(errno);
++#elif defined(Q_OS_FREEBSD)
++ int result = procctl(P_PID, ::getpid(), PROC_REAP_ACQUIRE, nullptr);
++ if (result != 0)
++ qCWarning(SESSION) << "Unable to to set PROC_REAP_ACQUIRE, " << result << " - " << strerror(errno);
+ #endif
+ }
+
+@@ -92,20 +102,41 @@ void ProcReaper::stop(const std::set<int64_t> & exclud
+ return;
+ }
+ // send term to all children
+-#if defined(Q_OS_LINUX)
+ const pid_t my_pid = ::getpid();
++ std::vector<pid_t> children;
++#if defined(Q_OS_LINUX)
+ PROCTAB * proc_dir = ::openproc(PROC_FILLSTAT);
+ while (proc_t * proc = ::readproc(proc_dir, nullptr))
+ {
+- if (proc->ppid == my_pid && excludedPids.count(proc->ppid) == 0)
++ if (proc->ppid == my_pid)
+ {
+- qCDebug(SESSION) << "Seding TERM to child " << proc->tgid;
+- ::kill(proc->tgid, SIGTERM);
++ children.push_back(proc->tgid);
+ }
+ ::freeproc(proc);
+ }
+ ::closeproc(proc_dir);
++#elif defined(Q_OS_FREEBSD)
++ int cnt = 0;
++ if (kinfo_proc *proc_info = kinfo_getallproc(&cnt))
++ {
++ for (int i = 0; i < cnt; ++i)
++ {
++ if (proc_info[i].ki_ppid == my_pid)
++ {
++ children.push_back(proc_info[i].ki_pid);
++ }
++ }
++ free(proc_info);
++ }
+ #endif
++ for (auto const & child : children)
++ {
++ if (excludedPids.count(child) == 0)
++ {
++ qCDebug(SESSION) << "Seding TERM to child " << child;
++ ::kill(child, SIGTERM);
++ }
++ }
+ mWait.wakeAll();
+ {
+ QMutexLocker guard{&mMutex};
diff --git a/x11-wm/lxqt-session/pkg-plist b/x11-wm/lxqt-session/pkg-plist
index 3bd1add4a48b..ba6af4a330f8 100644
--- a/x11-wm/lxqt-session/pkg-plist
+++ b/x11-wm/lxqt-session/pkg-plist
@@ -3,7 +3,6 @@ bin/lxqt-leave
bin/lxqt-session
bin/startlxqt
etc/xdg/autostart/lxqt-xscreensaver-autostart.desktop
-etc/xdg/openbox/lxqt-rc.xml
share/applications/lxqt-config-session.desktop
share/applications/lxqt-hibernate.desktop
share/applications/lxqt-leave.desktop
@@ -18,6 +17,7 @@ share/kdm/sessions/lxqt.desktop
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ar.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_arn.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ast.qm
+%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_bg.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ca.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_cs.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_cy.qm
@@ -43,11 +43,13 @@ share/kdm/sessions/lxqt.desktop
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_lt.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_nb_NO.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_nl.qm
+%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_oc.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_pl.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_pt.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_pt_BR.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ro_RO.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ru.qm
+%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_si.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_sk_SK.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_sl.qm
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_sr@latin.qm
@@ -60,6 +62,7 @@ share/kdm/sessions/lxqt.desktop
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ar.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_arn.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ast.qm
+%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_bg.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ca.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_cs.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_cy.qm
@@ -83,8 +86,8 @@ share/kdm/sessions/lxqt.desktop
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pl.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pt.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pt_BR.qm
-%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pt_PT.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ru.qm
+%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_si.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_sl.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_tr.qm
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_uk.qm
@@ -93,6 +96,7 @@ share/kdm/sessions/lxqt.desktop
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ar.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_arn.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ast.qm
+%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_bg.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ca.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_cs.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_cy.qm
@@ -124,6 +128,7 @@ share/kdm/sessions/lxqt.desktop
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_pt_BR.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ro_RO.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ru.qm
+%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_si.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_sk_SK.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_sl.qm
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_sr@latin.qm