1*387f9dfdSAndroid Build Coastguard Worker%bcond_with local_clang_static 2*387f9dfdSAndroid Build Coastguard Worker#lua jit not available for some architectures 3*387f9dfdSAndroid Build Coastguard Worker%ifarch ppc64 aarch64 ppc64le 4*387f9dfdSAndroid Build Coastguard Worker%{!?with_lua: %global with_lua 0} 5*387f9dfdSAndroid Build Coastguard Worker%else 6*387f9dfdSAndroid Build Coastguard Worker%{!?with_lua: %global with_lua 1} 7*387f9dfdSAndroid Build Coastguard Worker%endif 8*387f9dfdSAndroid Build Coastguard Worker 9*387f9dfdSAndroid Build Coastguard Worker# use --with shared to only link against libLLVM.so 10*387f9dfdSAndroid Build Coastguard Worker%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 11*387f9dfdSAndroid Build Coastguard Worker%bcond_without llvm_shared 12*387f9dfdSAndroid Build Coastguard Worker%else 13*387f9dfdSAndroid Build Coastguard Worker%bcond_with llvm_shared 14*387f9dfdSAndroid Build Coastguard Worker%endif 15*387f9dfdSAndroid Build Coastguard Worker 16*387f9dfdSAndroid Build Coastguard Worker# Build python3 support for distributions that have it 17*387f9dfdSAndroid Build Coastguard Worker%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 18*387f9dfdSAndroid Build Coastguard Worker%bcond_without python3 19*387f9dfdSAndroid Build Coastguard Worker%else 20*387f9dfdSAndroid Build Coastguard Worker%bcond_with python3 21*387f9dfdSAndroid Build Coastguard Worker%endif 22*387f9dfdSAndroid Build Coastguard Worker 23*387f9dfdSAndroid Build Coastguard Worker# Build with debuginfod support for Fedora >= 32 24*387f9dfdSAndroid Build Coastguard Worker%if 0%{?fedora} >= 32 25*387f9dfdSAndroid Build Coastguard Worker%bcond_without libdebuginfod 26*387f9dfdSAndroid Build Coastguard Worker%else 27*387f9dfdSAndroid Build Coastguard Worker%bcond_with libdebuginfod 28*387f9dfdSAndroid Build Coastguard Worker%endif 29*387f9dfdSAndroid Build Coastguard Worker 30*387f9dfdSAndroid Build Coastguard Worker%if %{with python3} 31*387f9dfdSAndroid Build Coastguard Worker%global __python %{__python3} 32*387f9dfdSAndroid Build Coastguard Worker%global python_bcc python3-bcc 33*387f9dfdSAndroid Build Coastguard Worker%global python_cmds python2;python3 34*387f9dfdSAndroid Build Coastguard Worker%else 35*387f9dfdSAndroid Build Coastguard Worker%global __python %{__python2} 36*387f9dfdSAndroid Build Coastguard Worker%global python_bcc python2-bcc 37*387f9dfdSAndroid Build Coastguard Worker%global python_cmds python2 38*387f9dfdSAndroid Build Coastguard Worker%endif 39*387f9dfdSAndroid Build Coastguard Worker 40*387f9dfdSAndroid Build Coastguard Worker%define debug_package %{nil} 41*387f9dfdSAndroid Build Coastguard Worker%define _unpackaged_files_terminate_build 0 42*387f9dfdSAndroid Build Coastguard Worker 43*387f9dfdSAndroid Build Coastguard Worker 44*387f9dfdSAndroid Build Coastguard WorkerName: bcc 45*387f9dfdSAndroid Build Coastguard WorkerVersion: @REVISION@ 46*387f9dfdSAndroid Build Coastguard WorkerRelease: @GIT_REV_COUNT@ 47*387f9dfdSAndroid Build Coastguard WorkerSummary: BPF Compiler Collection (BCC) 48*387f9dfdSAndroid Build Coastguard Worker 49*387f9dfdSAndroid Build Coastguard WorkerGroup: Development/Languages 50*387f9dfdSAndroid Build Coastguard WorkerLicense: ASL 2.0 51*387f9dfdSAndroid Build Coastguard WorkerURL: https://github.com/iovisor/bcc 52*387f9dfdSAndroid Build Coastguard WorkerSource0: bcc.tar.gz 53*387f9dfdSAndroid Build Coastguard Worker 54*387f9dfdSAndroid Build Coastguard WorkerExclusiveArch: x86_64 ppc64 aarch64 ppc64le 55*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: bison cmake >= 2.8.7 flex make 56*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: gcc gcc-c++ elfutils-libelf-devel-static 57*387f9dfdSAndroid Build Coastguard Worker%if %{with libdebuginfod} 58*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: elfutils-debuginfod-client-devel 59*387f9dfdSAndroid Build Coastguard Worker%endif 60*387f9dfdSAndroid Build Coastguard Worker%if %{with python3} 61*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: python3-devel 62*387f9dfdSAndroid Build Coastguard Worker%else 63*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: python2-devel 64*387f9dfdSAndroid Build Coastguard Worker%endif 65*387f9dfdSAndroid Build Coastguard Worker%if %{with_lua} 66*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: luajit luajit-devel 67*387f9dfdSAndroid Build Coastguard Worker%endif 68*387f9dfdSAndroid Build Coastguard Worker%if %{without local_clang_static} 69*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: llvm-devel 70*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: clang-devel 71*387f9dfdSAndroid Build Coastguard Worker%if %{without llvm_shared} 72*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: llvm-static 73*387f9dfdSAndroid Build Coastguard Worker%endif 74*387f9dfdSAndroid Build Coastguard Worker%endif 75*387f9dfdSAndroid Build Coastguard WorkerBuildRequires: pkgconfig ncurses-devel 76*387f9dfdSAndroid Build Coastguard Worker 77*387f9dfdSAndroid Build Coastguard Worker%description 78*387f9dfdSAndroid Build Coastguard WorkerPython bindings for BPF Compiler Collection (BCC). Control a BPF program from 79*387f9dfdSAndroid Build Coastguard Workeruserspace. 80*387f9dfdSAndroid Build Coastguard Worker 81*387f9dfdSAndroid Build Coastguard Worker%if %{with_lua} 82*387f9dfdSAndroid Build Coastguard Worker%global lua_include `pkg-config --variable=includedir luajit` 83*387f9dfdSAndroid Build Coastguard Worker%global lua_libs `pkg-config --variable=libdir luajit`/lib`pkg-config --variable=libname luajit`.so 84*387f9dfdSAndroid Build Coastguard Worker%global lua_config -DLUAJIT_INCLUDE_DIR=%{lua_include} -DLUAJIT_LIBRARIES=%{lua_libs} 85*387f9dfdSAndroid Build Coastguard Worker%endif 86*387f9dfdSAndroid Build Coastguard Worker 87*387f9dfdSAndroid Build Coastguard Worker%prep 88*387f9dfdSAndroid Build Coastguard Worker%setup -q -n bcc 89*387f9dfdSAndroid Build Coastguard Worker 90*387f9dfdSAndroid Build Coastguard Worker%build 91*387f9dfdSAndroid Build Coastguard Worker 92*387f9dfdSAndroid Build Coastguard Workermkdir build 93*387f9dfdSAndroid Build Coastguard Workerpushd build 94*387f9dfdSAndroid Build Coastguard Workercmake .. -DREVISION_LAST=%{version} -DREVISION=%{version} \ 95*387f9dfdSAndroid Build Coastguard Worker -DCMAKE_INSTALL_PREFIX=/usr \ 96*387f9dfdSAndroid Build Coastguard Worker %{?lua_config} \ 97*387f9dfdSAndroid Build Coastguard Worker -DPYTHON_CMD="%{python_cmds}" \ 98*387f9dfdSAndroid Build Coastguard Worker %{?with_llvm_shared:-DENABLE_LLVM_SHARED=1} 99*387f9dfdSAndroid Build Coastguard Workermake %{?_smp_mflags} 100*387f9dfdSAndroid Build Coastguard Workerpopd 101*387f9dfdSAndroid Build Coastguard Worker 102*387f9dfdSAndroid Build Coastguard Worker%install 103*387f9dfdSAndroid Build Coastguard Workerpushd build 104*387f9dfdSAndroid Build Coastguard Workermake install/strip DESTDIR=%{buildroot} 105*387f9dfdSAndroid Build Coastguard Worker# mangle shebangs 106*387f9dfdSAndroid Build Coastguard Workerfind %{buildroot}/usr/share/bcc/{tools,examples} -type f -exec \ 107*387f9dfdSAndroid Build Coastguard Worker sed -i -e '1 s|^#!/usr/bin/python$|#!'%{__python}'|' \ 108*387f9dfdSAndroid Build Coastguard Worker -e '1 s|^#!/usr/bin/env python$|#!'%{__python}'|' {} \; 109*387f9dfdSAndroid Build Coastguard Worker 110*387f9dfdSAndroid Build Coastguard Worker%package -n libbcc 111*387f9dfdSAndroid Build Coastguard WorkerSummary: Shared Library for BPF Compiler Collection (BCC) 112*387f9dfdSAndroid Build Coastguard WorkerRequires: elfutils-libelf 113*387f9dfdSAndroid Build Coastguard Worker%if %{with libdebuginfod} 114*387f9dfdSAndroid Build Coastguard WorkerRequires: elfutils-debuginfod-client 115*387f9dfdSAndroid Build Coastguard Worker%endif 116*387f9dfdSAndroid Build Coastguard Worker%description -n libbcc 117*387f9dfdSAndroid Build Coastguard WorkerShared Library for BPF Compiler Collection (BCC) 118*387f9dfdSAndroid Build Coastguard Worker 119*387f9dfdSAndroid Build Coastguard Worker%package -n python2-bcc 120*387f9dfdSAndroid Build Coastguard WorkerSummary: Python2 bindings for BPF Compiler Collection (BCC) 121*387f9dfdSAndroid Build Coastguard WorkerRequires: libbcc = %{version}-%{release} 122*387f9dfdSAndroid Build Coastguard Worker%{?python_provide:%python_provide python2-bcc} 123*387f9dfdSAndroid Build Coastguard Worker%description -n python2-bcc 124*387f9dfdSAndroid Build Coastguard WorkerPython bindings for BPF Compiler Collection (BCC) 125*387f9dfdSAndroid Build Coastguard Worker 126*387f9dfdSAndroid Build Coastguard Worker%if %{with python3} 127*387f9dfdSAndroid Build Coastguard Worker%package -n python3-bcc 128*387f9dfdSAndroid Build Coastguard WorkerSummary: Python3 bindings for BPF Compiler Collection (BCC) 129*387f9dfdSAndroid Build Coastguard WorkerRequires: libbcc = %{version}-%{release} 130*387f9dfdSAndroid Build Coastguard Worker%{?python_provide:%python_provide python3-bcc} 131*387f9dfdSAndroid Build Coastguard Worker%description -n python3-bcc 132*387f9dfdSAndroid Build Coastguard WorkerPython bindings for BPF Compiler Collection (BCC) 133*387f9dfdSAndroid Build Coastguard Worker%endif 134*387f9dfdSAndroid Build Coastguard Worker 135*387f9dfdSAndroid Build Coastguard Worker%if %{with_lua} 136*387f9dfdSAndroid Build Coastguard Worker%package -n bcc-lua 137*387f9dfdSAndroid Build Coastguard WorkerSummary: Standalone tool to run BCC tracers written in Lua 138*387f9dfdSAndroid Build Coastguard WorkerRequires: libbcc = %{version}-%{release} 139*387f9dfdSAndroid Build Coastguard Worker%description -n bcc-lua 140*387f9dfdSAndroid Build Coastguard WorkerStandalone tool to run BCC tracers written in Lua 141*387f9dfdSAndroid Build Coastguard Worker%endif 142*387f9dfdSAndroid Build Coastguard Worker 143*387f9dfdSAndroid Build Coastguard Worker%package -n libbcc-examples 144*387f9dfdSAndroid Build Coastguard WorkerSummary: Examples for BPF Compiler Collection (BCC) 145*387f9dfdSAndroid Build Coastguard WorkerRequires: %{python_bcc} = %{version}-%{release} 146*387f9dfdSAndroid Build Coastguard Worker%if %{with_lua} 147*387f9dfdSAndroid Build Coastguard WorkerRequires: bcc-lua = %{version}-%{release} 148*387f9dfdSAndroid Build Coastguard Worker%endif 149*387f9dfdSAndroid Build Coastguard Worker%description -n libbcc-examples 150*387f9dfdSAndroid Build Coastguard WorkerExamples for BPF Compiler Collection (BCC) 151*387f9dfdSAndroid Build Coastguard Worker 152*387f9dfdSAndroid Build Coastguard Worker%package -n bcc-tools 153*387f9dfdSAndroid Build Coastguard WorkerSummary: Command line tools for BPF Compiler Collection (BCC) 154*387f9dfdSAndroid Build Coastguard WorkerRequires: %{python_bcc} = %{version}-%{release} 155*387f9dfdSAndroid Build Coastguard Worker%description -n bcc-tools 156*387f9dfdSAndroid Build Coastguard WorkerCommand line tools for BPF Compiler Collection (BCC) 157*387f9dfdSAndroid Build Coastguard Worker 158*387f9dfdSAndroid Build Coastguard Worker%files -n libbcc 159*387f9dfdSAndroid Build Coastguard Worker/usr/lib64/* 160*387f9dfdSAndroid Build Coastguard Worker/usr/include/bcc/* 161*387f9dfdSAndroid Build Coastguard Worker 162*387f9dfdSAndroid Build Coastguard Worker%files -n python2-bcc 163*387f9dfdSAndroid Build Coastguard Worker%{python2_sitelib}/bcc* 164*387f9dfdSAndroid Build Coastguard Worker 165*387f9dfdSAndroid Build Coastguard Worker%if %{with python3} 166*387f9dfdSAndroid Build Coastguard Worker%files -n python3-bcc 167*387f9dfdSAndroid Build Coastguard Worker%{python3_sitelib}/bcc* 168*387f9dfdSAndroid Build Coastguard Worker%endif 169*387f9dfdSAndroid Build Coastguard Worker 170*387f9dfdSAndroid Build Coastguard Worker%if %{with_lua} 171*387f9dfdSAndroid Build Coastguard Worker%files -n bcc-lua 172*387f9dfdSAndroid Build Coastguard Worker/usr/bin/bcc-lua 173*387f9dfdSAndroid Build Coastguard Worker%endif 174*387f9dfdSAndroid Build Coastguard Worker 175*387f9dfdSAndroid Build Coastguard Worker%files -n libbcc-examples 176*387f9dfdSAndroid Build Coastguard Worker/usr/share/bcc/examples/* 177*387f9dfdSAndroid Build Coastguard Worker%exclude /usr/share/bcc/examples/*.pyc 178*387f9dfdSAndroid Build Coastguard Worker%exclude /usr/share/bcc/examples/*.pyo 179*387f9dfdSAndroid Build Coastguard Worker%exclude /usr/share/bcc/examples/*/*.pyc 180*387f9dfdSAndroid Build Coastguard Worker%exclude /usr/share/bcc/examples/*/*.pyo 181*387f9dfdSAndroid Build Coastguard Worker%exclude /usr/share/bcc/examples/*/*/*.pyc 182*387f9dfdSAndroid Build Coastguard Worker%exclude /usr/share/bcc/examples/*/*/*.pyo 183*387f9dfdSAndroid Build Coastguard Worker 184*387f9dfdSAndroid Build Coastguard Worker%files -n bcc-tools 185*387f9dfdSAndroid Build Coastguard Worker/usr/share/bcc/introspection/* 186*387f9dfdSAndroid Build Coastguard Worker/usr/share/bcc/tools/* 187*387f9dfdSAndroid Build Coastguard Worker/usr/share/bcc/man/* 188*387f9dfdSAndroid Build Coastguard Worker 189*387f9dfdSAndroid Build Coastguard Worker%post -n libbcc -p /sbin/ldconfig 190*387f9dfdSAndroid Build Coastguard Worker 191*387f9dfdSAndroid Build Coastguard Worker%postun -n libbcc -p /sbin/ldconfig 192*387f9dfdSAndroid Build Coastguard Worker 193*387f9dfdSAndroid Build Coastguard Worker%changelog 194*387f9dfdSAndroid Build Coastguard Worker* Wed Jul 18 2018 Brenden Blanco <bblanco@gmail.com> - 0.6.0-1 195*387f9dfdSAndroid Build Coastguard Worker- Make python3 the default when possible 196*387f9dfdSAndroid Build Coastguard Worker- Add with llvm_shared conditional 197*387f9dfdSAndroid Build Coastguard Worker- Add python2/python3 package targets 198*387f9dfdSAndroid Build Coastguard Worker 199*387f9dfdSAndroid Build Coastguard Worker* Mon Nov 21 2016 William Cohen <wcohen@redhat.com> - 0.2.0-1 200*387f9dfdSAndroid Build Coastguard Worker- Revise bcc.spec to address rpmlint issues and build properly in Fedora koji. 201*387f9dfdSAndroid Build Coastguard Worker 202*387f9dfdSAndroid Build Coastguard Worker* Mon Apr 04 2016 Vicent Marti <vicent@github.com> - 0.1.4-1 203*387f9dfdSAndroid Build Coastguard Worker- Add bcc-lua package 204*387f9dfdSAndroid Build Coastguard Worker 205*387f9dfdSAndroid Build Coastguard Worker* Sun Nov 29 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.3-1 206*387f9dfdSAndroid Build Coastguard Worker- Add bcc-tools package 207*387f9dfdSAndroid Build Coastguard Worker 208*387f9dfdSAndroid Build Coastguard Worker* Mon Oct 12 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.2-1 209*387f9dfdSAndroid Build Coastguard Worker- Add better version numbering into libbcc.so 210*387f9dfdSAndroid Build Coastguard Worker 211*387f9dfdSAndroid Build Coastguard Worker* Fri Jul 03 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.1-2 212*387f9dfdSAndroid Build Coastguard Worker- Initial RPM Release 213