Rebase to upstream 0.5.5

Upstream: Fedora
Resolves: RHEL-86263

Signed-off-by: Philipp Rudo <prudo@redhat.com>
This commit is contained in:
Philipp Rudo 2025-05-16 15:40:29 +02:00
parent 9df07b99b5
commit cf0ecdeb6d
6 changed files with 79 additions and 51 deletions

View File

@ -0,0 +1,48 @@
commit cc927b9e22ebe6de1a6ed23ca8d14d1f3d790fb5
Author: Petr Tesarik <petr@tesarici.cz>
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 <petr@tesarici.cz>
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=

View File

@ -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: <https://github.com/ptesarik/libkdumpfile/pull/78>
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*/

View File

@ -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

View File

@ -1 +1 @@
SHA512 (libkdumpfile-0.5.4.tar.gz) = 40637dbdf8a5002bd649f1c94d9bd2258cb0df64efe3435f9ab51cfcce94300bf0422dcb0a4d0c535484a20b46fe6456cf7fb97164abc0673c90d2d631d3e350
SHA512 (libkdumpfile-0.5.5.tar.gz) = 350f82f1297623f8531f3e1d1f21224d9b4b93d1c90bd4f4c24e792d3cbb02b9b9850d73ca1ade116fe698cfa60d2fdc1b5403f9847f1803c95a9417f854a935

View File

@ -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`

View File

@ -13,6 +13,7 @@
- doxygen
- make
- sed
- binutils-devel
- libzstd-devel
- lzo-devel
- python3-devel