Skip to content

Commit 8f82c71

Browse files
committed
x11-wm/lxqt-session: Update to 0.17.1
Add FreeBSD reaper logic implementation from upstream by added patches.
1 parent bee2bf6 commit 8f82c71

5 files changed

Lines changed: 97 additions & 6 deletions

File tree

x11-wm/lxqt-session/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Created by: Olivier Duchateau
22

33
PORTNAME= lxqt-session
4-
PORTVERSION= 0.16.0
4+
PORTVERSION= 0.17.1
55
CATEGORIES= x11-wm
66
MASTER_SITES= LXQT
77

x11-wm/lxqt-session/distinfo

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
TIMESTAMP = 1605365870
2-
SHA256 (lxqt/lxqt-session-0.16.0.tar.xz) = 547e01e173921357245fb938718bd2401b38e73245cdcbecf195130e856d4959
3-
SIZE (lxqt/lxqt-session-0.16.0.tar.xz) = 180084
1+
TIMESTAMP = 1618785099
2+
SHA256 (lxqt/lxqt-session-0.17.1.tar.xz) = d9058ceedb355a43ea2ef070292fc30b0fb740640cf0b579131aaefbac779c47
3+
SIZE (lxqt/lxqt-session-0.17.1.tar.xz) = 178976
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--- lxqt-session/CMakeLists.txt.orig 2021-04-16 16:36:14 UTC
2+
+++ lxqt-session/CMakeLists.txt
3+
@@ -71,6 +71,10 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
4+
target_link_libraries(lxqt-session
5+
${PROCPS_LIBRARIES}
6+
)
7+
+elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
8+
+ target_link_libraries(lxqt-session
9+
+ -lutil
10+
+ )
11+
endif()
12+
13+
if (WITH_LIBUDEV)
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
--- lxqt-session/src/procreaper.cpp.orig 2021-04-16 16:36:14 UTC
2+
+++ lxqt-session/src/procreaper.cpp
3+
@@ -30,7 +30,13 @@
4+
#if defined(Q_OS_LINUX)
5+
#include <sys/prctl.h>
6+
#include <proc/readproc.h>
7+
+#elif defined(Q_OS_FREEBSD)
8+
+#include <sys/procctl.h>
9+
+#include <libutil.h>
10+
+#include <sys/user.h>
11+
+#include <signal.h>
12+
#endif
13+
+#include <unistd.h>
14+
#include <cstring>
15+
#include <cerrno>
16+
#include <sys/wait.h>
17+
@@ -42,6 +48,10 @@ ProcReaper::ProcReaper()
18+
int result = prctl(PR_SET_CHILD_SUBREAPER, 1);
19+
if (result != 0)
20+
qCWarning(SESSION) << "Unable to to set PR_SET_CHILD_SUBREAPER, " << result << " - " << strerror(errno);
21+
+#elif defined(Q_OS_FREEBSD)
22+
+ int result = procctl(P_PID, ::getpid(), PROC_REAP_ACQUIRE, nullptr);
23+
+ if (result != 0)
24+
+ qCWarning(SESSION) << "Unable to to set PROC_REAP_ACQUIRE, " << result << " - " << strerror(errno);
25+
#endif
26+
}
27+
28+
@@ -92,20 +102,41 @@ void ProcReaper::stop(const std::set<int64_t> & exclud
29+
return;
30+
}
31+
// send term to all children
32+
-#if defined(Q_OS_LINUX)
33+
const pid_t my_pid = ::getpid();
34+
+ std::vector<pid_t> children;
35+
+#if defined(Q_OS_LINUX)
36+
PROCTAB * proc_dir = ::openproc(PROC_FILLSTAT);
37+
while (proc_t * proc = ::readproc(proc_dir, nullptr))
38+
{
39+
- if (proc->ppid == my_pid && excludedPids.count(proc->ppid) == 0)
40+
+ if (proc->ppid == my_pid)
41+
{
42+
- qCDebug(SESSION) << "Seding TERM to child " << proc->tgid;
43+
- ::kill(proc->tgid, SIGTERM);
44+
+ children.push_back(proc->tgid);
45+
}
46+
::freeproc(proc);
47+
}
48+
::closeproc(proc_dir);
49+
+#elif defined(Q_OS_FREEBSD)
50+
+ int cnt = 0;
51+
+ if (kinfo_proc *proc_info = kinfo_getallproc(&cnt))
52+
+ {
53+
+ for (int i = 0; i < cnt; ++i)
54+
+ {
55+
+ if (proc_info[i].ki_ppid == my_pid)
56+
+ {
57+
+ children.push_back(proc_info[i].ki_pid);
58+
+ }
59+
+ }
60+
+ free(proc_info);
61+
+ }
62+
#endif
63+
+ for (auto const & child : children)
64+
+ {
65+
+ if (excludedPids.count(child) == 0)
66+
+ {
67+
+ qCDebug(SESSION) << "Seding TERM to child " << child;
68+
+ ::kill(child, SIGTERM);
69+
+ }
70+
+ }
71+
mWait.wakeAll();
72+
{
73+
QMutexLocker guard{&mMutex};

x11-wm/lxqt-session/pkg-plist

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ bin/lxqt-leave
33
bin/lxqt-session
44
bin/startlxqt
55
etc/xdg/autostart/lxqt-xscreensaver-autostart.desktop
6-
etc/xdg/openbox/lxqt-rc.xml
76
share/applications/lxqt-config-session.desktop
87
share/applications/lxqt-hibernate.desktop
98
share/applications/lxqt-leave.desktop
@@ -18,6 +17,7 @@ share/kdm/sessions/lxqt.desktop
1817
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ar.qm
1918
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_arn.qm
2019
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ast.qm
20+
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_bg.qm
2121
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ca.qm
2222
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_cs.qm
2323
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_cy.qm
@@ -43,11 +43,13 @@ share/kdm/sessions/lxqt.desktop
4343
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_lt.qm
4444
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_nb_NO.qm
4545
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_nl.qm
46+
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_oc.qm
4647
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_pl.qm
4748
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_pt.qm
4849
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_pt_BR.qm
4950
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ro_RO.qm
5051
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_ru.qm
52+
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_si.qm
5153
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_sk_SK.qm
5254
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_sl.qm
5355
%%LXQT_TRANSLATIONS%%/lxqt-config-session/lxqt-config-session_sr@latin.qm
@@ -60,6 +62,7 @@ share/kdm/sessions/lxqt.desktop
6062
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ar.qm
6163
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_arn.qm
6264
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ast.qm
65+
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_bg.qm
6366
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ca.qm
6467
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_cs.qm
6568
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_cy.qm
@@ -83,8 +86,8 @@ share/kdm/sessions/lxqt.desktop
8386
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pl.qm
8487
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pt.qm
8588
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pt_BR.qm
86-
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_pt_PT.qm
8789
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_ru.qm
90+
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_si.qm
8891
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_sl.qm
8992
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_tr.qm
9093
%%LXQT_TRANSLATIONS%%/lxqt-leave/lxqt-leave_uk.qm
@@ -93,6 +96,7 @@ share/kdm/sessions/lxqt.desktop
9396
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ar.qm
9497
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_arn.qm
9598
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ast.qm
99+
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_bg.qm
96100
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ca.qm
97101
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_cs.qm
98102
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_cy.qm
@@ -124,6 +128,7 @@ share/kdm/sessions/lxqt.desktop
124128
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_pt_BR.qm
125129
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ro_RO.qm
126130
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_ru.qm
131+
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_si.qm
127132
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_sk_SK.qm
128133
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_sl.qm
129134
%%LXQT_TRANSLATIONS%%/lxqt-session/lxqt-session_sr@latin.qm

0 commit comments

Comments
 (0)