116 lines
3.7 KiB
RPMSpec
116 lines
3.7 KiB
RPMSpec
|
%bcond_without llvm_static
|
||
|
|
||
|
Name: bpftrace
|
||
|
Version: 0.9
|
||
|
Release: 3%{?dist}
|
||
|
Summary: High-level tracing language for Linux eBPF
|
||
|
License: ASL 2.0
|
||
|
|
||
|
URL: https://github.com/iovisor/bpftrace
|
||
|
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||
|
Patch0: %{name}-%{version}-clang_parser-pass-BPFtrace-as-arg-instead-of-StructM.patch
|
||
|
Patch1: %{name}-%{version}-clang_parser-fix-clang_parser-for-LLVM-8.patch
|
||
|
Patch2: %{name}-%{version}-fix-struct-definition-from-headers.patch
|
||
|
Patch3: %{name}-%{version}-RHEL-8-fixes.patch
|
||
|
Patch4: %{name}-%{version}-Ban-kprobes-that-cause-CPU-deadlocks.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
|
||
|
|
||
|
%if %{with llvm_static}
|
||
|
BuildRequires: llvm-static
|
||
|
%endif
|
||
|
|
||
|
%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 \
|
||
|
-DLLVM_DIR=/usr/lib64/llvm7.0/lib/cmake/llvm/
|
||
|
%make_build
|
||
|
|
||
|
|
||
|
%install
|
||
|
%make_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}=' {} \;
|
||
|
|
||
|
# Move man pages to the right location
|
||
|
mkdir -p %{buildroot}%{_mandir}
|
||
|
mv %{buildroot}%{_prefix}/man/* %{buildroot}%{_mandir}/
|
||
|
|
||
|
|
||
|
%files
|
||
|
%doc README.md CONTRIBUTING-TOOLS.md
|
||
|
%doc docs/reference_guide.md docs/tutorial_one_liners.md
|
||
|
%license LICENSE
|
||
|
%dir %{_datadir}/%{name}
|
||
|
%dir %{_datadir}/%{name}/tools
|
||
|
%dir %{_datadir}/%{name}/tools/doc
|
||
|
%{_bindir}/%{name}
|
||
|
%{_mandir}/man8/*
|
||
|
%attr(0755,-,-) %{_datadir}/%{name}/tools/*.bt
|
||
|
%{_datadir}/%{name}/tools/doc/*.txt
|
||
|
|
||
|
|
||
|
%changelog
|
||
|
* Tue Jun 18 2019 Jerome Marchand <jmarchan@redhat.com> - 0.9.3
|
||
|
- Don't allow to raw_spin_lock* kprobes that can deadlock the kernel.
|
||
|
|
||
|
* Wed Jun 12 2019 Jerome Marchand <jmarchan@redhat.com> - 0.9.2
|
||
|
- Fixes gethostlatency
|
||
|
- Fixes a struct definition issue that made several tools fail
|
||
|
- Add CI gating
|
||
|
|
||
|
* Wed May 15 2019 Jerome Marchand <jmarchan@redhat.com> - 0.9.1
|
||
|
- Original build on RHEL 8
|
||
|
|
||
|
* Thu Apr 25 2019 Augusto Caringi <acaringi@redhat.com> - 0.9-3
|
||
|
- Rebuilt for bcc 0.9.0
|
||
|
|
||
|
* Mon Apr 22 2019 Neal Gompa <ngompa@datto.com> - 0.9-2
|
||
|
- Fix Source0 reference
|
||
|
- Use make_build macro for calling make
|
||
|
|
||
|
* Mon Apr 1 2019 Peter Robinson <pbrobinson@fedoraproject.org> 0.9-1
|
||
|
- Build on aarch64 and s390x
|
||
|
|
||
|
* Mon Mar 25 2019 Augusto Caringi <acaringi@redhat.com> - 0.9-0
|
||
|
- Updated to version 0.9
|
||
|
|
||
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.0-2.20181210gitc49b333
|
||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||
|
|
||
|
* Mon Dec 10 2018 Augusto Caringi <acaringi@redhat.com> - 0.0-1.20181210gitc49b333
|
||
|
- Updated to latest upstream (c49b333c034a6d29a7ce90f565e27da1061af971)
|
||
|
|
||
|
* Wed Nov 07 2018 Augusto Caringi <acaringi@redhat.com> - 0.0-1.20181107git029717b
|
||
|
- Initial import
|