public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [PATCH 1/2] procps: upgrade from 4.0.5 to 4.0.6
@ 2026-02-24  1:47 Changqing Li
  2026-02-24  1:47 ` [PATCH 2/2] procps: support ptest when TCLIBC is glibc Changqing Li
  0 siblings, 1 reply; 8+ messages in thread
From: Changqing Li @ 2026-02-24  1:47 UTC (permalink / raw)
  To: openembedded-core

Remove patch top_large_pid_fix.patch, already in 4.0.6

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 .../procps/procps/top_large_pid_fix.patch     | 52 -------------------
 .../{procps_4.0.5.bb => procps_4.0.6.bb}      |  3 +-
 2 files changed, 1 insertion(+), 54 deletions(-)
 delete mode 100644 meta/recipes-extended/procps/procps/top_large_pid_fix.patch
 rename meta/recipes-extended/procps/{procps_4.0.5.bb => procps_4.0.6.bb} (97%)

diff --git a/meta/recipes-extended/procps/procps/top_large_pid_fix.patch b/meta/recipes-extended/procps/procps/top_large_pid_fix.patch
deleted file mode 100644
index d7e3141e06..0000000000
--- a/meta/recipes-extended/procps/procps/top_large_pid_fix.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From f21fc624d960d12afa399af7333d4f9193fb2ffb Mon Sep 17 00:00:00 2001
-From: Jim Warner <james.warner@comcast.net>
-Date: Tue, 16 Sep 2025 12:00:00 -0500
-Subject: [PATCH] library: avoid possible segmentation fault, <pids> api
-Upstream-Status: Backport
-[https://gitlab.com/procps-ng/procps/-/commit/5461b50b1a85c5e556c4cd2739ca8ffdbc69399a]
-
-In the issue referenced below, that SEGV was caused by
-passing a '-1' pid to the procps_pids_select function.
-That value, in turn, is caused by providing a LONG_MAX
-or greater number for what was assigned to an integer.
-
-So, this commit will help ensure we avoid a match when
-we should fail plus skip some unproductive libc calls.
-
-[ the same problem occurs in that old 3.3.17 library ]
-
-Reference(s):
-https://gitlab.com/procps-ng/procps/-/issues/394
-
-Signed-off-by: Jim Warner <james.warner@comcast.net>
-Signed-off-by: Amaury Couderc <amaury.couderc@est.tech>
-
----
- library/readproc.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/library/readproc.c b/library/readproc.c
-index 2dfe4c9e..d0e039bf 100644
---- a/library/readproc.c
-+++ b/library/readproc.c
-@@ -1434,7 +1434,7 @@ static int listed_nextpid (PROCTAB *PT, proc_t *p) {
-   pid_t pid = *(PT->pids)++;
-   char *path = PT->path;
- 
--  if (pid) {
-+  if (pid > 0) {
-     snprintf(path, PROCPATHLEN, "/proc/%d", pid);
-     p->tid = p->tgid = pid;        // this tgid may be a huge fib |
- 
-@@ -1546,7 +1546,7 @@ PROCTAB *openproc(unsigned flags, ...) {
-         did_stat = 1;
-     }
-     PT->taskdir = NULL;
--    PT->taskdir_user = -1;
-+    PT->taskdir_user = -2;
-     PT->taskfinder = simple_nexttid;
-     PT->taskreader = simple_readtask;
- 
--- 
-2.43.0
-
diff --git a/meta/recipes-extended/procps/procps_4.0.5.bb b/meta/recipes-extended/procps/procps_4.0.6.bb
similarity index 97%
rename from meta/recipes-extended/procps/procps_4.0.5.bb
rename to meta/recipes-extended/procps/procps_4.0.6.bb
index 0e0e06f0d2..168027077b 100644
--- a/meta/recipes-extended/procps/procps_4.0.5.bb
+++ b/meta/recipes-extended/procps/procps_4.0.6.bb
@@ -14,9 +14,8 @@ inherit autotools gettext pkgconfig update-alternatives
 
 SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master;tag=v${PV} \
            file://sysctl.conf \
-           file://top_large_pid_fix.patch \
            "
-SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e"
+SRCREV = "4dafddf4c3f4646caa517f039a2307e92657ec93"
 
 # Upstream has a custom autogen.sh which invokes po/update-potfiles as they
 # don't ship a po/POTFILES.in (which is silly).  Without that file gettext
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread
* [PATCH V2] procps: support ptest when TCLIBC is glibc
@ 2026-01-16  9:27 changqing.li
  0 siblings, 0 replies; 8+ messages in thread
From: changqing.li @ 2026-01-16  9:27 UTC (permalink / raw)
  To: openembedded-core

From: Changqing Li <changqing.li@windriver.com>

* support ptest for procps TCLIBC is glibc. The configure.ac only match
  LINUX as "linux-gnu", we can patch it to make test can run on musl lib
system, but the upstream testsuite should only run on gnu libc host,
some test cases only suitable for glibc, eg: Some of the error messages
for free command on musl system is not the same as glibc system, which
will make test failed. In order to avoid some other unexpected failure,
just support ptest for glibc.

* procps's testsuite use DejaGnu test framework.  The testsuite is
  expected to run during build time, this implementation create the same
folder structure as the testsuite expected to make it can work well.

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 .../distro/include/ptest-packagelists.inc     |  2 +
 meta/recipes-extended/procps/procps/run-ptest |  7 +++
 meta/recipes-extended/procps/procps_4.0.5.bb  | 51 ++++++++++++++++++-
 3 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/procps/procps/run-ptest

diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index fff2947177..2391224527 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -57,6 +57,7 @@ PTESTS_FAST = "\
     nettle \
     opkg \
     popt \
+    procps \
     python3-atomicwrites \
     python3-attrs \
     python3-bcrypt \
@@ -97,6 +98,7 @@ PTESTS_FAST:remove:mips64 = "qemu"
 PTESTS_PROBLEMS:append:mips64 = " qemu"
 PTESTS_FAST:remove:riscv32 = "qemu"
 PTESTS_PROBLEMS:append:riscv32 = " qemu"
+PTESTS_FAST:remove:libc-musl = "procps"
 
 PTESTS_SLOW = "\
     apr \
diff --git a/meta/recipes-extended/procps/procps/run-ptest b/meta/recipes-extended/procps/procps/run-ptest
new file mode 100644
index 0000000000..0a74907fcc
--- /dev/null
+++ b/meta/recipes-extended/procps/procps/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cd ./testsuite
+for tool in @DEJATOOL@;do
+    runtest -a --tool $tool --outdir ../log
+done
+
diff --git a/meta/recipes-extended/procps/procps_4.0.5.bb b/meta/recipes-extended/procps/procps_4.0.5.bb
index 0e0e06f0d2..d39bb5062f 100644
--- a/meta/recipes-extended/procps/procps_4.0.5.bb
+++ b/meta/recipes-extended/procps/procps_4.0.5.bb
@@ -10,12 +10,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
 
 DEPENDS = "ncurses"
 
-inherit autotools gettext pkgconfig update-alternatives
+inherit autotools gettext pkgconfig update-alternatives ${@bb.utils.contains('TCLIBC', 'glibc', 'ptest', '', d)}
 
 SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master;tag=v${PV} \
            file://sysctl.conf \
            file://top_large_pid_fix.patch \
            "
+SRC_URI:append:libc-glibc = " file://run-ptest"
+
 SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e"
 
 # Upstream has a custom autogen.sh which invokes po/update-potfiles as they
@@ -47,8 +49,51 @@ do_install:append () {
         fi
 }
 
-CONFFILES:${PN} = "${sysconfdir}/sysctl.conf"
+do_compile_ptest() {
+    oe_runmake -C testsuite site.exp
+    oe_runmake src/tests/test_process src/tests/test_strutils  src/tests/test_fileutils src/tests/test_shm
+    DEJATOOL=$(make -C testsuite -s -f Makefile -f - <<'EOF'
+all:
+	$(info $(DEJATOOL))
+EOF
+)
+    echo $DEJATOOL > ${B}/testsuite/.dejatool
+}
+
+do_install_ptest() {
+     install -d ${D}${PTEST_PATH}/testsuite
+     install -d ${D}${PTEST_PATH}/src
+     install -d ${D}${PTEST_PATH}/log
+
+     cp -r ${S}/testsuite/* ${D}${PTEST_PATH}/testsuite/
+     cp -r ${B}/testsuite/* ${D}${PTEST_PATH}/testsuite/
+     cp -r ${B}/src/tests ${D}${PTEST_PATH}/src/
+
+     rm -rf ${D}${PTEST_PATH}/testsuite/Makefile*
+     rm -rf ${D}${PTEST_PATH}/testsuite/README
+     find ${D}${PTEST_PATH}/testsuite/ -type f -name "*.o" -exec rm -f {} +
+     find ${D}${PTEST_PATH}/src/ -type f -name "*.o" -exec rm -f {} +
+
+     sed -i -e "/set srcdir/c\set srcdir ${PTEST_PATH}/testsuite" \
+            -e "/set objdir/c\set objdir ${PTEST_PATH}/testsuite" ${D}${PTEST_PATH}/testsuite/site.exp
+
+     DEJATOOL=$(cat ${B}/testsuite/.dejatool)
+     sed -i -e "s#@DEJATOOL@#$DEJATOOL#g" ${D}${PTEST_PATH}/run-ptest
+     for p in $DEJATOOL; do
+        if [ "$p" = "ps" ]; then
+            install -d ${D}${PTEST_PATH}/src/ps
+            ln -sf ${base_bindir}/ps ${D}${PTEST_PATH}/src/ps/pscommand
+        elif [ "$p" = "sysctl" ]; then
+            ln -sf ${base_sbindir}/$p ${D}${PTEST_PATH}/src/$p
+        elif [ "$p" = "kill" ] || [ "$p" = "pidof" ] || [ "$p" = "watch" ]; then
+            ln -sf ${base_bindir}/$p ${D}${PTEST_PATH}/src/$p
+        else
+            ln -sf ${bindir}/$p ${D}${PTEST_PATH}/src/$p
+        fi
+     done
+}
 
+CONFFILES:${PN} = "${sysconfdir}/sysctl.conf"
 bindir_progs = "free pkill pmap pgrep pwdx skill snice top uptime w"
 base_bindir_progs += "kill pidof ps watch"
 base_sbindir_progs += "sysctl"
@@ -80,6 +125,8 @@ RDEPENDS:${PN} += "${PROCPS_PACKAGES}"
 RDEPENDS:${PN}-ps += "${PN}-lib"
 RDEPENDS:${PN}-sysctl += "${PN}-lib"
 
+RDEPENDS:${PN}-ptest += "dejagnu bash glibc-utils"
+
 FILES:${PN}-lib = "${libdir}"
 FILES:${PN}-ps = "${base_bindir}/ps.${BPN}"
 FILES:${PN}-sysctl = "${base_sbindir}/sysctl.${BPN} ${sysconfdir}/sysctl.conf ${sysconfdir}/sysctl.d"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-03-06  4:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-24  1:47 [PATCH 1/2] procps: upgrade from 4.0.5 to 4.0.6 Changqing Li
2026-02-24  1:47 ` [PATCH 2/2] procps: support ptest when TCLIBC is glibc Changqing Li
2026-02-26 13:13   ` [OE-core] " Ross Burton
2026-02-27  6:17     ` Changqing Li
2026-02-27  6:49     ` [PATCH V2] " Changqing Li
2026-03-05 15:16       ` [OE-core] " Ross Burton
2026-03-06  4:05         ` [PATCH V3] " Changqing Li
  -- strict thread matches above, loose matches on Subject: below --
2026-01-16  9:27 [PATCH V2] " changqing.li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox