diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/lxqt.scm | 5 | ||||
-rw-r--r-- | gnu/packages/patches/lxqt-session-procps-4.patch | 82 |
3 files changed, 2 insertions, 86 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 1476c730ba..4305bee89c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1537,7 +1537,6 @@ dist_patch_DATA = \ %D%/packages/patches/lua-5.4-liblua-so.patch \ %D%/packages/patches/luit-posix.patch \ %D%/packages/patches/lvm2-static-link.patch \ - %D%/packages/patches/lxqt-session-procps-4.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mathjax-disable-webpack.patch \ diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index b02aa45510..c771b205b8 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -668,15 +668,14 @@ allows for launching applications or shutting down the system.") (define-public lxqt-session (package (name "lxqt-session") - (version "1.2.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/lxqt/" name "/releases/download/" version "/" name "-" version ".tar.xz")) (sha256 - (base32 "0rjw3rw6kpaa3csrga005qg5bxmdxfgrnn1qngs2nrny35v97ckl")) - (patches (search-patches "lxqt-session-procps-4.patch")))) + (base32 "0xa5nqiq9mxwfynnw91i4c2cgpmpapl4nxys084nbs7yd88kbm2l")))) (build-system cmake-build-system) (inputs (list eudev diff --git a/gnu/packages/patches/lxqt-session-procps-4.patch b/gnu/packages/patches/lxqt-session-procps-4.patch deleted file mode 100644 index d10e310723..0000000000 --- a/gnu/packages/patches/lxqt-session-procps-4.patch +++ /dev/null @@ -1,82 +0,0 @@ -From d1db1c791195f3c0cf148e2be8bd46c5a51ca535 Mon Sep 17 00:00:00 2001 -From: Palo Kisa <palo.kisa@gmail.com> -Date: Tue, 7 Mar 2023 14:21:40 +0100 -Subject: [PATCH 978/978] reaper: Build/Run on systems with procps-ng >= 4.0.0 - (#456) - -On Linux, make it possible to use libproc2 or libprocps whichever is -available. ---- - CMakeLists.txt | 6 +++++- - lxqt-session/src/procreaper.cpp | 24 +++++++++++++++++++++++- - 2 files changed, 28 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a3c5e0d..f208600 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -35,7 +35,11 @@ find_package(X11 REQUIRED) - message(STATUS "Building with Qt${Qt5Core_VERSION}") - find_package(PkgConfig REQUIRED) - if (CMAKE_SYSTEM_NAME STREQUAL "Linux") -- pkg_search_module(PROCPS REQUIRED libprocps) -+ pkg_search_module(PROCPS REQUIRED libproc2 libprocps) -+ message(STATUS "Using PROCPS -> ${PROCPS_MODULE_NAME} v${PROCPS_VERSION}") -+ if (PROCPS_VERSION VERSION_GREATER_EQUAL 4.0.0) -+ add_definitions("-DUSING_LIBPROC2") -+ endif() - endif() - - # Please don't move, must be after lxqt -diff --git a/lxqt-session/src/procreaper.cpp b/lxqt-session/src/procreaper.cpp -index 2acd030..1ea4bdc 100644 ---- a/lxqt-session/src/procreaper.cpp -+++ b/lxqt-session/src/procreaper.cpp -@@ -29,7 +29,11 @@ - #include "log.h" - #if defined(Q_OS_LINUX) - #include <sys/prctl.h> --#include <proc/readproc.h> -+# if defined(USING_LIBPROC2) -+# include <libproc2/pids.h> -+# else -+# include <proc/readproc.h> -+# endif - #elif defined(Q_OS_FREEBSD) - #include <sys/procctl.h> - #include <libutil.h> -@@ -109,6 +113,23 @@ void ProcReaper::stop(const std::set<int64_t> & excludedPids) - const pid_t my_pid = ::getpid(); - std::vector<pid_t> children; - #if defined(Q_OS_LINUX) -+# if defined(USING_LIBPROC2) -+ constexpr pids_item items[] = { PIDS_ID_PPID, PIDS_ID_TGID }; -+ enum rel_items { rel_ppid, rel_tgid }; -+ pids_info * info = nullptr; -+ procps_pids_new(&info, const_cast<pids_item *>(items), sizeof(items) / sizeof(pids_item)); -+ pids_stack * stack = nullptr; -+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) -+ { -+ const int ppid = PIDS_VAL(rel_ppid, s_int, stack, info); -+ if (ppid == my_pid) -+ { -+ const int tgid = PIDS_VAL(rel_tgid, s_int, stack, info); -+ children.push_back(tgid); -+ } -+ } -+ procps_pids_unref(&info); -+# else - PROCTAB * proc_dir = ::openproc(PROC_FILLSTAT); - while (proc_t * proc = ::readproc(proc_dir, nullptr)) - { -@@ -119,6 +140,7 @@ void ProcReaper::stop(const std::set<int64_t> & excludedPids) - ::freeproc(proc); - } - ::closeproc(proc_dir); -+# endif - #elif defined(Q_OS_FREEBSD) - int cnt = 0; - if (kinfo_proc *proc_info = kinfo_getallproc(&cnt)) --- -2.39.2 - |