diff --git a/.gitignore b/.gitignore index e69de29..d02e52f 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/libkdumpfile-0.5.2.tar.gz diff --git a/libkdumpfile.spec b/libkdumpfile.spec new file mode 100644 index 0000000..bd4c44c --- /dev/null +++ b/libkdumpfile.spec @@ -0,0 +1,126 @@ +%global mainlibsover 10 +%global addrlibsover 3 + +Name: libkdumpfile +Version: 0.5.2 +Release: 1%{?dist} +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 + +BuildRequires: gcc-c++ +BuildRequires: doxygen +BuildRequires: make +BuildRequires: sed +BuildRequires: libzstd-devel +BuildRequires: lzo-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: snappy-devel +BuildRequires: zlib-devel + +%global _description %{expand: +libkdumpfile is a library to read kdump-compressed kernel core dumps.} + +%description %{_description} + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel %{_description} + +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: Documentation for %{name} +BuildArch: noarch +# keep this until F38 is EOL (so Fedora < 41) as 0.5.1 was not noarch due to +# doxygen being run *after* rather than *before* build so it indexes "built" +# Python sources too +# likewise, EPEL 8 and 9 are affected +%if (0%{?fedora} && 0%{?fedora} < 41) || (0%{?rhel} && 0%{?rhel} < 10) +Obsoletes: %{name}-doc < 0.5.2-1 +%endif + +%description doc %{_description} + +The %{name}-doc package contains documentation for %{name}. + +%package -n python3-%{name} +Summary: Python bindings for %{name} +Obsoletes: %{name}-python < 0.4.0-6 +Provides: %{name}-python = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n python3-%{name} %{_description} + +The python3-%{name} package contains Python bindings for %{name}. + +%package util +Summary: Utilities to read kernel core dumps +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description util %{_description} +The %{name}-devel package contains misc utilities built with %{name}. + + +%prep +%autosetup -p1 +# Remove unneeded shebang +sed -e "\|#!/usr/bin/env python|d" -i python/*/*.py + + +%build +%configure +%{__make} doxygen-doc +%make_build + + +%install +%make_install +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' +# static artifacts are needed to run tests, but we don't +# want to ship them +find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' + + +%check +%make_build check + + +%files +%license COPYING COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv3 +%doc README.md NEWS +%{_libdir}/libaddrxlat.so.%{addrlibsover}{,.*} +%{_libdir}/libkdumpfile.so.%{mainlibsover}{,.*} + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/libaddrxlat.so +%{_libdir}/libkdumpfile.so +%{_libdir}/pkgconfig/libaddrxlat.pc +%{_libdir}/pkgconfig/libkdumpfile.pc + +%files doc +%license COPYING COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv3 +%doc doc/html + +%files -n python3-%{name} +%{python3_sitearch}/%{name}-%{version}-*.egg-info +%{python3_sitearch}/addrxlat/ +%{python3_sitearch}/_addrxlat.*.so +%{python3_sitearch}/kdumpfile/ +%{python3_sitearch}/_kdumpfile.*.so + +%files util +%{_bindir}/dumpattr +%{_bindir}/listxendoms +%{_bindir}/showxlat + +%changelog +%autochangelog diff --git a/sources b/sources new file mode 100644 index 0000000..62469f0 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (libkdumpfile-0.5.2.tar.gz) = 168d246dc69185418329ce8cca0f00a5d1dffb25b6e216262077ce54c41f356c07b4619f1e2ea6909a5673c422bacb5ed06483cf8e622adbf7ea2b4a904f2845