bpftool/bpftool.spec
Viktor Malik cb7c5cc435
Make kernel tarball dist independent of %{dist}
Resolves: RHEL-80792

There are situations when the kernel tarball dist is different from the
package dist, e.g. when building via CentOS Stream during the exception
phase (c9s will use .el9 while RHEL will use .el9_Z).

Signed-off-by: Viktor Malik <vmalik@redhat.com>
2025-03-06 11:36:40 +01:00

61 lines
1.9 KiB
RPMSpec

# We build bpftool from RHEL kernel sources, that's why we use
# directly kernel tar for RHEL kernel build.
# We update bpftool's 'sources' file with proper hash that's
# used as kernel tar.
# RHEL kernel version-release
%define kver 5.14.0-557
%define kdist .el9
%define source linux-%{kver}%{kdist}
Name: bpftool
Version: 7.5.0
# Currently, bpftool built from kernel uses kernel's release version (500+).
# In order to do the transition smoothly, raise it to a sufficiently big number.
# Once bpftool moves to 7.6.0, reset the release to 1.
Release: 802%{?dist}
Summary: Inspection and simple manipulation of eBPF programs and maps
%global libname libbpf
%global sources %{name}-%{libname}-v%{version}-sources
License: GPL-2.0-only OR BSD-2-Clause
Source: %{source}.tar.xz
ExcludeArch: %{ix86}
BuildRequires: gcc
BuildRequires: make
BuildRequires: binutils-devel
BuildRequires: elfutils-libelf-devel
BuildRequires: libcap-devel
BuildRequires: llvm-devel
BuildRequires: clang
BuildRequires: python3-docutils
BuildRequires: kernel-devel
%description
This package contains the bpftool, which allows inspection and simple
manipulation of eBPF programs and maps.
%prep
%autosetup -p1 -n %{source}
%build
# We need to use vmlinux.h from kernel-devel rather than the one from the running system
%define kernel_version %(rpm -q --qf "%%{VERSION}-%%{RELEASE}.%%{ARCH}" kernel-devel)
pushd tools/bpf/bpftool
%make_build EXTRA_CFLAGS="%{build_cflags}" EXTRA_CXXFLAGS="%{build_cflags}" EXTRA_LDFLAGS="%{build_ldflags}" VMLINUX_H="/usr/src/kernels/%{kernel_version}/vmlinux.h"
%install
pushd tools/bpf/bpftool
%make_install prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} doc-install
%files
%{_sbindir}/bpftool
%{_sysconfdir}/bash_completion.d/bpftool
%{_mandir}/man8/bpftool*.8*
%changelog
%autochangelog