diff mbox series

[1/1] package/ltp-testsuite: bump version to 20230127

Message ID 20230127223256.132401-1-pevik@seznam.cz
State Superseded
Headers show
Series [1/1] package/ltp-testsuite: bump version to 20230127 | expand

Commit Message

Petr Vorel Jan. 27, 2023, 10:32 p.m. UTC
From: Petr Vorel <petr.vorel@gmail.com>

Remove musl related sysinfo.h patch. This Buildroot specific workaround
is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
took to rebuilt Buildroot toolchains, but even that was more than year
ago).

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
NOTE: I'd like to add /opt/ltp/runltp-ng (tools/runltp-ng/runltp-ng in
source, from [1]) symlink to /usr/bin (that should be trivial).
The tool should have only Python 3.6+ (no external modules so far)
and while we (LTP upstream developers) would recommend to not use it on
SUT (guest), where LTP is being run, but on host, we agreed to put
runltp-ng on both sides SUT (target package) and on host (host package).
But whole thing might take me more time thus posting updated package
without it.

Kind regards,
Petr

[1] https://github.com/linux-test-project/runltp-ng

 ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
 package/ltp-testsuite/ltp-testsuite.hash      |   5 +-
 package/ltp-testsuite/ltp-testsuite.mk        |   2 +-
 3 files changed, 3 insertions(+), 215 deletions(-)
 delete mode 100644 package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch

Comments

Thomas Petazzoni Jan. 28, 2023, 9:55 p.m. UTC | #1
Hello Petr,

On Fri, 27 Jan 2023 23:32:56 +0100
Petr Vorel <pevik@seznam.cz> wrote:

> From: Petr Vorel <petr.vorel@gmail.com>
> 
> Remove musl related sysinfo.h patch. This Buildroot specific workaround
> is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
> constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
> took to rebuilt Buildroot toolchains, but even that was more than year
> ago).

Sorry, but this explanation is not entirely clear to me. Do you mean
that only toolchains with kernel headers >= 5.11 will no longer have
the problem? We definitely need to support toolchains that have kernel
headers < 5.11.

> NOTE: I'd like to add /opt/ltp/runltp-ng (tools/runltp-ng/runltp-ng in
> source, from [1]) symlink to /usr/bin (that should be trivial).
> The tool should have only Python 3.6+ (no external modules so far)
> and while we (LTP upstream developers) would recommend to not use it on
> SUT (guest), where LTP is being run, but on host, we agreed to put
> runltp-ng on both sides SUT (target package) and on host (host package).
> But whole thing might take me more time thus posting updated package
> without it.

In the context of Buildroot, I guess it makes sense to be able to start
the LTP test suite directly on the target, so indeed it would make
sense to have runltp-ng on the target. However, you could also have a
host package to install runltp-ng on the host for those who want to run
it on their machine, and control the execution of the tests on their
target.

Thanks!

Thomas
Petr Vorel Jan. 28, 2023, 10:26 p.m. UTC | #2
Hi Thomas,
...
> > NOTE: I'd like to add /opt/ltp/runltp-ng (tools/runltp-ng/runltp-ng in
> > source, from [1]) symlink to /usr/bin (that should be trivial).
> > The tool should have only Python 3.6+ (no external modules so far)
> > and while we (LTP upstream developers) would recommend to not use it on
> > SUT (guest), where LTP is being run, but on host, we agreed to put
> > runltp-ng on both sides SUT (target package) and on host (host package).
> > But whole thing might take me more time thus posting updated package
> > without it.
>
> In the context of Buildroot, I guess it makes sense to be able to start
> the LTP test suite directly on the target, so indeed it would make
> sense to have runltp-ng on the target. However, you could also have a
> host package to install runltp-ng on the host for those who want to run
> it on their machine, and control the execution of the tests on their
> target.

Thank you for your input. Yes, that's why I add it to both target and host.

FYI runltp-ng supports running on target (that's the same as the old runltp
shell script) but also running via 1) ssh 2) qemu (supports qcow image or
rootfs + kernel - suitable for Buildroot).  The main advantage to run it on
host via ssh/qemu is that runltp-ng will support (not yet done, but intensively
developed) detection of crashed host (happens sometimes, mostly by CVE tests),
runltp-ng restarts it and continue with testing (really handy for automation -
experience from testing openSUSE with openQA framework, where we use this
approach).

Also having python on target might be limitation for minimalistic systems.
But OTOH for some quick testing it might be handy to have runltp-ng on target
(and people very likely ask for it).

But as I said, I'd prefer to add it as a separate effort.

Kind regards,
Petr
Petr Vorel Jan. 28, 2023, 10:36 p.m. UTC | #3
Hi Thomas,

> > Remove musl related sysinfo.h patch. This Buildroot specific workaround
> > is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
> > constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
> > took to rebuilt Buildroot toolchains, but even that was more than year
> > ago).
>
> Sorry, but this explanation is not entirely clear to me. Do you mean
> that only toolchains with kernel headers >= 5.11 will no longer have
> the problem? We definitely need to support toolchains that have kernel
> headers < 5.11.
Yes, IMHO musl toolchains hat have kernel headers < 5.11 should not be
able to compile
LTP without this custom patch. But I tested building LTP with
utils/test-pkg both the default
6 toolchains + the others added via -a and everything worked. Do you
use some other toolchains
with older headers? Couldn't you backport a85cbe6159ff to it? I'd
prefer not having to
carry this patch forever, but sure I'll do continue if proven it's needed.

Kind regards,
Petr
diff mbox series

Patch

diff --git a/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch b/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
deleted file mode 100644
index 1553908cf8..0000000000
--- a/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
+++ /dev/null
@@ -1,211 +0,0 @@ 
-From f34c6ca3d543968e900d6327d8b5900db63f08ad Mon Sep 17 00:00:00 2001
-From: Petr Vorel <petr.vorel@gmail.com>
-Date: Thu, 1 Oct 2020 23:28:39 +0200
-Subject: [PATCH] lapi: Add sysinfo.h to fix build with MUSL libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The reason is to avoid indirect <linux/sysinfo.h> include when using
-some network headers: <linux/netlink.h> or others -> <linux/kernel.h>
--> <linux/sysinfo.h>
-
-This indirect include causes on MUSL redefinition of struct sysinfo when
-included both <sys/sysinfo.h> and some of UAPI headers:
-
-In file included from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:5,
-                 from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/netlink.h:5,
-                 from ../include/tst_netlink.h:14,
-                 from tst_crypto.c:13:
-x86_64-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:8:8: error: redefinition of ‘struct sysinfo’
- struct sysinfo {
-        ^~~~~~~
-In file included from ../include/tst_safe_macros.h:15,
-                 from ../include/tst_test.h:93,
-                 from tst_crypto.c:11:
-x86_64-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here
-
-Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
-
-[ upstream status:
-https://patchwork.ozlabs.org/project/ltp/patch/20201001231256.6930-1-petr.vorel@gmail.com/,
-rebased for 20220527 ]
-
-But this patch is not going to get upstreamed because it got fixed in Linux kernel:
-a85cbe6159ff "uapi: move constants from <linux/kernel.h> to <linux/const.h>"
-
-This patch was also backported to stable and LTS versions,
-which we use since buildroot 54584d233b "{linux, linux-headers}: bump
-5.{4, 10}.x 4.{4, 9, 14, 19} series".
-We just wait for all musl based toolchains to be rebuilt. ]
-
-Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
----
- include/lapi/sysinfo.h                        | 22 +++++++++++++++++++
- include/tst_safe_macros.h                     |  2 +-
- lib/safe_macros.c                             |  2 +-
- lib/tst_memutils.c                            |  2 +-
- testcases/kernel/mem/mtest01/mtest01.c        |  2 +-
- testcases/kernel/syscalls/madvise/madvise06.c |  2 +-
- testcases/kernel/syscalls/sysinfo/sysinfo01.c |  2 +-
- testcases/kernel/syscalls/sysinfo/sysinfo02.c |  2 +-
- testcases/kernel/syscalls/sysinfo/sysinfo03.c |  2 +-
- .../interfaces/pthread_cond_broadcast/1-2.c   |  2 +-
- 10 files changed, 31 insertions(+), 9 deletions(-)
- create mode 100644 include/lapi/sysinfo.h
-
-diff --git a/include/lapi/sysinfo.h b/include/lapi/sysinfo.h
-new file mode 100644
-index 000000000..d0e0e93d7
---- /dev/null
-+++ b/include/lapi/sysinfo.h
-@@ -0,0 +1,22 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * Copyright (c) 2020 Petr Vorel <petr.vorel@gmail.com>
-+ */
-+
-+#ifndef SYSINFO_H__
-+
-+/*
-+ * Don't use <sys/sysinfo.h> as it breaks build MUSL toolchain.
-+ * Use <linux/sysinfo.h> instead.
-+ *
-+ * Some kernel UAPI headers do indirect <linux/sysinfo.h> include:
-+ * <linux/netlink.h> or others -> <linux/kernel.h> -> <linux/sysinfo.h>
-+ *
-+ * This indirect include causes on MUSL redefinition of struct sysinfo when
-+ * included both <sys/sysinfo.h> and some of UAPI headers:
-+ */
-+#include <linux/sysinfo.h>
-+
-+#define SYSINFO_H__
-+
-+#endif /* SYSINFO_H__ */
-diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h
-index 81c4b0844..a8c02d7df 100644
---- a/include/tst_safe_macros.h
-+++ b/include/tst_safe_macros.h
-@@ -12,7 +12,7 @@
- #include <sys/resource.h>
- #include <sys/stat.h>
- #include <sys/vfs.h>
--#include <sys/sysinfo.h>
-+#include <linux/sysinfo.h>
- #include <fcntl.h>
- #include <libgen.h>
- #include <signal.h>
-diff --git a/lib/safe_macros.c b/lib/safe_macros.c
-index a5b6bc504..87d922a92 100644
---- a/lib/safe_macros.c
-+++ b/lib/safe_macros.c
-@@ -11,7 +11,7 @@
- #include <sys/wait.h>
- #include <sys/mount.h>
- #include <sys/xattr.h>
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
- #include <errno.h>
- #include <fcntl.h>
- #include <libgen.h>
-diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
-index 0d20bb17c..21a3a5ba0 100644
---- a/lib/tst_memutils.c
-+++ b/lib/tst_memutils.c
-@@ -6,7 +6,7 @@
- #include <stdio.h>
- #include <unistd.h>
- #include <limits.h>
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
- #include <stdlib.h>
-
- #define TST_NO_DEFAULT_MAIN
-diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
-index fb991ce8b..0fccd5405 100644
---- a/testcases/kernel/mem/mtest01/mtest01.c
-+++ b/testcases/kernel/mem/mtest01/mtest01.c
-@@ -20,7 +20,6 @@
-  */
-
- #include <sys/types.h>
--#include <sys/sysinfo.h>
- #include <sys/wait.h>
- #include <limits.h>
- #include <signal.h>
-@@ -29,6 +28,7 @@
- #include <unistd.h>
-
- #include "lapi/abisize.h"
-+#include "lapi/sysinfo.h"
- #include "tst_test.h"
-
- #define FIVE_HUNDRED_MB         (500ULL*1024*1024)
-diff --git a/testcases/kernel/syscalls/madvise/madvise06.c b/testcases/kernel/syscalls/madvise/madvise06.c
-index 6d218801c..8af11a030 100644
---- a/testcases/kernel/syscalls/madvise/madvise06.c
-+++ b/testcases/kernel/syscalls/madvise/madvise06.c
-@@ -46,7 +46,7 @@
- #include <errno.h>
- #include <stdio.h>
- #include <sys/mount.h>
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
- #include "tst_test.h"
-
- #define CHUNK_SZ (400*1024*1024L)
-diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
-index 2ea44a2be..a237345ef 100644
---- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c
-+++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
-@@ -69,7 +69,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/signal.h>
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
-
- #include "test.h"
-
-diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
-index 7ad0e8bdc..61fa1ab75 100644
---- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c
-+++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
-@@ -65,7 +65,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/signal.h>
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
- #include <stdint.h>
-
- #include "test.h"
-diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo03.c b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
-index af7cb6421..dc5ae65e3 100644
---- a/testcases/kernel/syscalls/sysinfo/sysinfo03.c
-+++ b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
-@@ -13,7 +13,7 @@
-
-  */
-
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
- #include "lapi/namespaces_constants.h"
- #include "lapi/posix_clocks.h"
- #include "tst_test.h"
-diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c
-index 22e7c3638..572701f9f 100644
---- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c
-+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c
-@@ -43,7 +43,7 @@
- #include <sys/wait.h>
- #include <semaphore.h>
- #ifdef	__linux__
--#include <sys/sysinfo.h>
-+#include "lapi/sysinfo.h"
- #endif
-
- #include "../testfrmw/testfrmw.h"
---
-2.36.1
-
diff --git a/package/ltp-testsuite/ltp-testsuite.hash b/package/ltp-testsuite/ltp-testsuite.hash
index 8b411a8ffe..59ba5d0045 100644
--- a/package/ltp-testsuite/ltp-testsuite.hash
+++ b/package/ltp-testsuite/ltp-testsuite.hash
@@ -1,5 +1,4 @@ 
-# From: https://github.com/linux-test-project/ltp/releases/download/20220527/ltp-full-20220527.tar.bz2.sha1
-sha1  c8d658cd3ab1f5a5c7b5bf56398d3a9525012c6b  ltp-full-20220930.tar.xz
+# From: https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz.sha256
+sha256  254412a52c7238f35a247337da186f485e76fb64c6549ed849b3442fc7a417ef  ltp-full-20230127.tar.xz
 # Locally computed
 sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
-sha256  533ab63915b916640667ecce17ee4998006d80d394d4b1f1d105a7aa1df50d38  ltp-full-20220930.tar.xz
diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk
index 34412d562f..78271b0730 100644
--- a/package/ltp-testsuite/ltp-testsuite.mk
+++ b/package/ltp-testsuite/ltp-testsuite.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-LTP_TESTSUITE_VERSION = 20220930
+LTP_TESTSUITE_VERSION = 20230127
 LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz
 LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION)