xref: /aosp_15_r20/external/bcc/SPECS/bcc.spec (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
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