diff --git a/fix_xlat-linux-x86_64-6.11-pti-user-ver_test.patch b/fix_xlat-linux-x86_64-6.11-pti-user-ver_test.patch new file mode 100644 index 0000000..cccfa17 --- /dev/null +++ b/fix_xlat-linux-x86_64-6.11-pti-user-ver_test.patch @@ -0,0 +1,48 @@ +commit cc927b9e22ebe6de1a6ed23ca8d14d1f3d790fb5 +Author: Petr Tesarik +Date: Fri Dec 27 12:17:35 2024 +0100 + + tests: Fix xlat-linux-x86_64-6.11-pti-user-ver with parallel runs + + The xlat-linux-x86_64-6.11-pti-user and xlat-linux-x86_64-6.11-pti-user-ver + test cases use the same input files, but the logic is flawed, because they + also use the same output file names. That fails if both run in parallel. + + Fixes: #85 + Signed-off-by: Petr Tesarik + +diff --git a/tests/xlat-linux-x86_64-6.11-pti-user-ver b/tests/xlat-linux-x86_64-6.11-pti-user-ver +index 43d500d..427985b 100755 +--- a/tests/xlat-linux-x86_64-6.11-pti-user-ver ++++ b/tests/xlat-linux-x86_64-6.11-pti-user-ver +@@ -14,5 +14,5 @@ opts=( + osver=0x060b00 + ) + +-name=xlat-linux-x86_64-6.11-pti-user ++srcname=xlat-linux-x86_64-6.11-pti-user + . "$srcdir"/xlat-os-common +diff --git a/tests/xlat-os-common b/tests/xlat-os-common +index a308a74..7dcdee9 100644 +--- a/tests/xlat-os-common ++++ b/tests/xlat-os-common +@@ -4,13 +4,14 @@ + + mkdir -p out || exit 99 + +-if [ -z "$name" ]; then +- name=$( basename "$0" ) ++name=$( basename "$0" ) ++if [ -z "$srcname" ]; then ++ srcname="$name" + fi + resultfile="out/${name}.result" +-expectfile="$srcdir/$name.expect" +-symfile="$srcdir/$name.sym" +-datafile="$srcdir/$name.data" ++expectfile="$srcdir/$srcname.expect" ++symfile="$srcdir/$srcname.sym" ++datafile="$srcdir/$srcname.data" + cfgfile="out/${name}.cfg" + + optspec= diff --git a/libkdumpfile-c99.patch b/libkdumpfile-c99.patch deleted file mode 100644 index f94d1ce..0000000 --- a/libkdumpfile-c99.patch +++ /dev/null @@ -1,45 +0,0 @@ -Python 3 does not have a tp_print member in PyTypeObject - -This avoids an int-conversion compiler error with current compilers: - -./kdumpfile.c:1449:9: error: initialization of 'long int' from 'int (*)(PyObject *, FILE *, int)' {aka 'int (*)(struct _object *, FILE *, int)'} makes integer from pointer without a cast - 1449 | attr_dir_print, /* tp_print*/ - | ^~~~~~~~~~~~~~ - -In Python 3.11, the field at this position is called -tp_vectorcall_offset and has type Py_ssize_t, hence the error. - -Submitted upstream: - -diff --git a/python/kdumpfile.c b/python/kdumpfile.c -index 7c5917522ef05539..332318e76f317dff 100644 ---- a/python/kdumpfile.c -+++ b/python/kdumpfile.c -@@ -1143,7 +1143,6 @@ attr_dir_repr(PyObject *_self) - Py_XDECREF(colon); - return result; - } --#endif - - static int - attr_dir_print(PyObject *_self, FILE *fp, int flags) -@@ -1214,6 +1213,7 @@ attr_dir_print(PyObject *_self, FILE *fp, int flags) - kdump_attr_iter_end(ctx, &iter); - return -1; - } -+#endif - - static PyObject * - attr_iterkey_new(PyObject *_self) -@@ -1446,7 +1446,11 @@ static PyTypeObject attr_dir_object_type = - sizeof(char), /* tp_itemsize*/ - /* methods */ - attr_dir_dealloc, /* tp_dealloc*/ -+#if PY_MAJOR_VERSION < 3 - attr_dir_print, /* tp_print*/ -+#else -+ 0, -+#endif - 0, /* tp_getattr*/ - 0, /* tp_setattr*/ - 0, /* tp_compare*/ diff --git a/libkdumpfile.spec b/libkdumpfile.spec index 2c94306..4eb8831 100644 --- a/libkdumpfile.spec +++ b/libkdumpfile.spec @@ -1,24 +1,37 @@ -%global mainlibsover 10 +%if 0%{?fedora} >= 42 || 0%{?rhel} >= 10 +# Python bindings removed post-0.5.5 +# see commit 40c9ff981f1f3bd968af37a50b50c3478d8267cd +%bcond_with python +%else +%bcond_without python +%endif + +%global mainlibsover 12 %global addrlibsover 3 Name: libkdumpfile -Version: 0.5.4 +Version: 0.5.5 Release: %autorelease Summary: Kernel coredump file access License: LGPL-3.0-or-later OR GPL-2.0-or-later URL: https://github.com/ptesarik/libkdumpfile Source: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz -Patch0: libkdumpfile-c99.patch +Patch0: fix_xlat-linux-x86_64-6.11-pti-user-ver_test.patch BuildRequires: gcc-c++ BuildRequires: doxygen BuildRequires: make BuildRequires: sed +BuildRequires: binutils-devel BuildRequires: libzstd-devel BuildRequires: lzo-devel +%if %{with python} BuildRequires: python3-devel BuildRequires: python3-setuptools +%else +Obsoletes: python3-libkdumpfile < 0.5.5-1 +%endif BuildRequires: snappy-devel BuildRequires: zlib-devel @@ -51,6 +64,7 @@ Obsoletes: %{name}-doc < 0.5.2-1 The %{name}-doc package contains documentation for %{name}. +%if %{with python} %package -n python3-%{name} Summary: Python bindings for %{name} Obsoletes: %{name}-python < 0.4.0-6 @@ -61,6 +75,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description -n python3-%{name} %{_description} The python3-%{name} package contains Python bindings for %{name}. +%endif %package util Summary: Utilities to read kernel core dumps @@ -77,7 +92,12 @@ sed -e "\|#!/usr/bin/env python|d" -i python/*/*.py %build -%configure +%configure \ +%if %{without python} + --with-python=no \ +%endif +%{nil} + %{__make} doxygen-doc %make_build @@ -111,17 +131,21 @@ find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' %license COPYING COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv3 %doc doc/html +%if %{with python} %files -n python3-%{name} %{python3_sitearch}/%{name}-%{version}-*.egg-info %{python3_sitearch}/addrxlat/ %{python3_sitearch}/_addrxlat.*.so %{python3_sitearch}/kdumpfile/ %{python3_sitearch}/_kdumpfile.*.so +%endif %files util %{_bindir}/dumpattr +%{_bindir}/kdumpid %{_bindir}/listxendoms %{_bindir}/showxlat +%{_mandir}/man1/kdumpid.1* %changelog %autochangelog diff --git a/sources b/sources index 3a78051..1009156 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libkdumpfile-0.5.4.tar.gz) = 40637dbdf8a5002bd649f1c94d9bd2258cb0df64efe3435f9ab51cfcce94300bf0422dcb0a4d0c535484a20b46fe6456cf7fb97164abc0673c90d2d631d3e350 +SHA512 (libkdumpfile-0.5.5.tar.gz) = 350f82f1297623f8531f3e1d1f21224d9b4b93d1c90bd4f4c24e792d3cbb02b9b9850d73ca1ade116fe698cfa60d2fdc1b5403f9847f1803c95a9417f854a935 diff --git a/tests/selftest/runtest.sh b/tests/selftest/runtest.sh index f1e135a..eb5e0f0 100755 --- a/tests/selftest/runtest.sh +++ b/tests/selftest/runtest.sh @@ -31,7 +31,7 @@ . /usr/share/beakerlib/beakerlib.sh || exit 1 PACKAGE="libkdumpfile" -PACKAGES="libkdumpfile gcc-c++ doxygen make sed libzstd-devel lzo-devel python3-devel python3-setuptools snappy-devel zlib-ng-compat-devel rpm-build" +PACKAGES="libkdumpfile gcc-c++ doxygen make sed binutils-devel libzstd-devel lzo-devel python3-devel python3-setuptools snappy-devel zlib-ng-compat-devel rpm-build" UPSTREAMPKG="libkdumpfile-*" BUILDLOG=`mktemp` TESTLOG=`mktemp` diff --git a/tests/tests.yml b/tests/tests.yml index 4d8b0fe..50b667c 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -13,6 +13,7 @@ - doxygen - make - sed + - binutils-devel - libzstd-devel - lzo-devel - python3-devel