commit 1208a46c3b25b96f736ff989f777b9e58bc53279 Author: MSVSphere Packaging Team Date: Tue Nov 26 15:38:26 2024 +0300 import bpftrace-0.21.1-1.el10 diff --git a/.bpftrace.metadata b/.bpftrace.metadata new file mode 100644 index 0000000..cb34d60 --- /dev/null +++ b/.bpftrace.metadata @@ -0,0 +1 @@ +dd96c1972002288a6a1105020e16391ff81f3641 SOURCES/bpftrace-0.21.1.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb15aed --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/bpftrace-0.21.1.tar.gz diff --git a/SOURCES/bpftrace-0.21.1-RHEL-aarch64-fixes-statsnoop-and-opensnoop.patch b/SOURCES/bpftrace-0.21.1-RHEL-aarch64-fixes-statsnoop-and-opensnoop.patch new file mode 100644 index 0000000..bb19d11 --- /dev/null +++ b/SOURCES/bpftrace-0.21.1-RHEL-aarch64-fixes-statsnoop-and-opensnoop.patch @@ -0,0 +1,66 @@ +From 6c8eccec1d7112ac5c64ced79df599215de9bd34 Mon Sep 17 00:00:00 2001 +From: Jerome Marchand +Date: Thu, 11 Jun 2020 14:56:36 +0200 +Subject: [PATCH] RHEL: aarch64: fixes statsnoop and opensnoop + +On aarch64 the open syscall has been dropped. Only openat remains, +wich is called by libc open() function. + +The state of *stat* syscalls, is a mess. They are several generations +of the system calls, and not all arches provides all of them. For +instance, new(l)stat are missing from aarch64. + +The only way I can think of fixing thess is RHEL-8 only arch specific +patches. + +Signed-off-by: Jerome Marchand +--- + tools/opensnoop.bt | 2 -- + tools/statsnoop.bt | 8 ++------ + 2 files changed, 2 insertions(+), 8 deletions(-) + +diff --git a/tools/opensnoop.bt b/tools/opensnoop.bt +index bbb26419..95185e5f 100755 +--- a/tools/opensnoop.bt ++++ b/tools/opensnoop.bt +@@ -21,13 +21,11 @@ BEGIN + printf("%-6s %-16s %4s %3s %s\n", "PID", "COMM", "FD", "ERR", "PATH"); + } + +-tracepoint:syscalls:sys_enter_open, + tracepoint:syscalls:sys_enter_openat + { + @filename[tid] = args.filename; + } + +-tracepoint:syscalls:sys_exit_open, + tracepoint:syscalls:sys_exit_openat + /@filename[tid]/ + { +diff --git a/tools/statsnoop.bt b/tools/statsnoop.bt +index a76b2bcc..89c2c8ea 100755 +--- a/tools/statsnoop.bt ++++ b/tools/statsnoop.bt +@@ -30,17 +30,13 @@ tracepoint:syscalls:sys_enter_statfs + @filename[tid] = args.pathname; + } + +-tracepoint:syscalls:sys_enter_statx, +-tracepoint:syscalls:sys_enter_newstat, +-tracepoint:syscalls:sys_enter_newlstat ++tracepoint:syscalls:sys_enter_statx + { + @filename[tid] = args.filename; + } + + tracepoint:syscalls:sys_exit_statfs, +-tracepoint:syscalls:sys_exit_statx, +-tracepoint:syscalls:sys_exit_newstat, +-tracepoint:syscalls:sys_exit_newlstat ++tracepoint:syscalls:sys_exit_statx + /@filename[tid]/ + { + $ret = args.ret; +-- +2.45.0 + diff --git a/SPECS/bpftrace.spec b/SPECS/bpftrace.spec new file mode 100644 index 0000000..dcaf259 --- /dev/null +++ b/SPECS/bpftrace.spec @@ -0,0 +1,248 @@ +Name: bpftrace +Version: 0.21.1 +Release: 1%{?dist} +Summary: High-level tracing language for Linux eBPF +License: Apache-2.0 + +URL: https://github.com/iovisor/bpftrace +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +Patch10: %{name}-%{version}-RHEL-aarch64-fixes-statsnoop-and-opensnoop.patch + +# Arches will be included as upstream support is added and dependencies are +# satisfied in the respective arches +ExclusiveArch: x86_64 %{power64} aarch64 s390x + +BuildRequires: gcc-c++ +BuildRequires: bison +BuildRequires: flex +BuildRequires: cmake +BuildRequires: elfutils-libelf-devel +BuildRequires: zlib-devel +BuildRequires: llvm-devel +BuildRequires: clang-devel +BuildRequires: bcc-devel >= 0.19.0-1 +BuildRequires: libbpf-devel +BuildRequires: libbpf-static +BuildRequires: binutils-devel +BuildRequires: cereal-devel +BuildRequires: lldb-devel +BuildRequires: rubygem-asciidoctor + + +%description +BPFtrace is a high-level tracing language for Linux enhanced Berkeley Packet +Filter (eBPF) available in recent Linux kernels (4.x). BPFtrace uses LLVM as a +backend to compile scripts to BPF-bytecode and makes use of BCC for +interacting with the Linux BPF system, as well as existing Linux tracing +capabilities: kernel dynamic tracing (kprobes), user-level dynamic tracing +(uprobes), and tracepoints. The BPFtrace language is inspired by awk and C, +and predecessor tracers such as DTrace and SystemTap + + +%prep +%autosetup -p1 + + +%build +%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DBUILD_TESTING:BOOL=OFF \ + -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DUSE_SYSTEM_BPF_BCC:BOOL=ON +%cmake_build + + +%install +# The post hooks strip the binary which removes +# the BEGIN_trigger and END_trigger functions +# which are needed for the BEGIN and END probes +%global __os_install_post %{nil} +%global _find_debuginfo_opts -g + +%cmake_install + +# Fix shebangs (https://fedoraproject.org/wiki/Packaging:Guidelines#Shebang_lines) +find %{buildroot}%{_datadir}/%{name}/tools -type f -exec \ + sed -i -e '1s=^#!/usr/bin/env %{name}\([0-9.]\+\)\?$=#!%{_bindir}/%{name}=' {} \; + + +%files +%doc README.md CONTRIBUTING-TOOLS.md +%doc man/adoc/bpftrace.adoc docs/tutorial_one_liners.md +%license LICENSE +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/tools +%dir %{_datadir}/%{name}/tools/doc +%{_bindir}/%{name} +%{_bindir}/%{name}-aotrt +%{_mandir}/man8/* +%attr(0755,-,-) %{_datadir}/%{name}/tools/*.bt +%{_datadir}/%{name}/tools/doc/*.txt +# Do not include old versions of tools, they do not work on RHEL 10 +%exclude %{_datadir}/%{name}/tools/old + + +%changelog +* Tue Nov 26 2024 MSVSphere Packaging Team - 0.21.1-1 +- Rebuilt for MSVSphere 10 + +* Tue Jun 25 2024 Viktor Malik - 0.21.1-1 +- Rebased to version 0.21.1 +- Resolves: RHEL-36076 +- Rebuilt for LLVM 18 +- Resolves: RHEL-27729 +- Enable gating +- Resolves: RHEL-45249 + +* Mon Jun 24 2024 Troy Dawson - 0.20.1-2 +- Bump release for June 2024 mass rebuild + +* Mon Feb 12 2024 Augusto Caringi - 0.20.1-1 +- Rebased to version 0.20.1 + +* Tue Jan 23 2024 Fedora Release Engineering - 0.19.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 0.19.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Oct 04 2023 Augusto Caringi - 0.19.1-1 +- Rebased to version 0.19.1 + +* Wed Jul 19 2023 Fedora Release Engineering - 0.18.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Viktor Malik - 0.18.0-2 +- Migrate license to SPDX + +* Tue May 16 2023 Yaakov Selkowitz - 0.18.0-1 +- Rebased to version 0.18.0 + +* Tue Jan 31 2023 Augusto Caringi - 0.17.0-1 +- Rebased to version 0.17.0 + +* Fri Jan 27 2023 Augusto Caringi - 0.16.0-6 +- Fix compile with GCC 13 + +* Wed Jan 18 2023 Fedora Release Engineering - 0.16.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Nov 07 2022 Jerome Marchand - 0.16.0-4 +- Rebuild for libbpf 1.0 + +* Mon Sep 26 2022 Kenneth Topp - 0.16.0-3 +- Enable workaround for non OpaquePointers on LLVM-15 + +* Mon Sep 19 2022 Pete Walter - 0.16.0-2 +- Rebuild for llvm 15 + +* Fri Sep 02 2022 Augusto Caringi - 0.16.0-1 +- Rebased to version 0.16.0 + +* Wed Jul 20 2022 Fedora Release Engineering - 0.15.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jul 05 2022 Augusto Caringi - 0.15.0-1 +- Rebased to version 0.15.0 + +* Tue Apr 19 2022 Jerome Marchand - 0.14.1-1 +- Rebased to version 0.14.1 +- Fix cmake build +- Rebuild with bcc 0.24 + +* Wed Jan 19 2022 Fedora Release Engineering - 0.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Oct 24 2021 Rafael Santos - 0.14.0-1 +- Rebased to version 0.14.0 + +* Mon Aug 09 2021 Augusto Caringi - 0.13.0-1 +- Rebased to version 0.13.0 + +* Tue Aug 03 2021 Rafael Santos - 0.12.1-3 +- Rebuilt for bcc-0.21.0 + +* Wed Jul 21 2021 Fedora Release Engineering - 0.12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Apr 27 2021 Jerome Marchand - 0.12.1-1 +- Rebased to version 0.12.1 + +* Sun Apr 04 2021 Augusto Caringi - 0.12.0-1 +- Rebased to version 0.12.0 + +* Thu Apr 01 2021 Augusto Caringi - 0.11.4-1 +- Rebased to version 0.11.4 + +* Tue Jan 26 2021 Fedora Release Engineering - 0.11.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Tom Stellard - 0.11.0-7 +- Rebuild for clang-11.1.0 + +* Fri Dec 04 2020 Jeff Law - 0.11.0-6 +- Fix missing #include for gcc-11 + +* Fri Nov 13 2020 Jerome Marchand - 0.11.0-5 +- Rebuilt for LLVM 11 + +* Tue Aug 04 2020 Augusto Caringi - 0.11.0-4 +- Fix FTBFS due to cmake wide changes #1863295 +- Fix 'bpftrace symbols are stripped' #1865787 + +* Sat Aug 01 2020 Fedora Release Engineering - 0.11.0-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 0.11.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 16 2020 Augusto Caringi - 0.11.0-1 +* Rebased to version 0.11.0 + +* Tue May 19 2020 Augusto Caringi - 0.10.0-2 +- Rebuilt for new bcc/libbpf versions + +* Tue Apr 14 2020 Augusto Caringi - 0.10.0-1 +- Rebased to version 0.10.0 +- Dropped support for s390x temporaly due to build error + +* Thu Feb 06 2020 Augusto Caringi - 0.9.4-1 +- Rebased to version 0.9.4 + +* Tue Jan 28 2020 Fedora Release Engineering - 0.9.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Nov 21 2019 Augusto Caringi - 0.9.3-1 +- Rebased to version 0.9.3 + +* Thu Aug 01 2019 Augusto Caringi - 0.9.2-1 +- Rebased to version 0.9.2 + +* Wed Jul 24 2019 Fedora Release Engineering - 0.9.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 26 2019 Augusto Caringi - 0.9.1-1 +- Rebased to version 0.9.1 + +* Thu Apr 25 2019 Augusto Caringi - 0.9-3 +- Rebuilt for bcc 0.9.0 + +* Mon Apr 22 2019 Neal Gompa - 0.9-2 +- Fix Source0 reference +- Use make_build macro for calling make + +* Mon Apr 1 2019 Peter Robinson 0.9-1 +- Build on aarch64 and s390x + +* Mon Mar 25 2019 Augusto Caringi - 0.9-0 +- Updated to version 0.9 + +* Thu Jan 31 2019 Fedora Release Engineering - 0.0-2.20181210gitc49b333 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Dec 10 2018 Augusto Caringi - 0.0-1.20181210gitc49b333 +- Updated to latest upstream (c49b333c034a6d29a7ce90f565e27da1061af971) + +* Wed Nov 07 2018 Augusto Caringi - 0.0-1.20181107git029717b +- Initial import