forked from iovisor/bcc
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* tools: use printb for more python3 compat Switch to printb in killsnoop and wakeuptime * tests: use subproceess sleep to trigger test In some python implementations, time.sleep uses select instead of nanosleep and hence won't trigger the bpf kprobe. * tools: remove explicit python3 shebang Use an ambiguous python invocation in the shebang line. Instead, rely on packaging stage to mangle the line to specify a python version. * cmake: add ENABLE_LLVM_SHARED option This adds an option to specify that only the dynamic libraries should be used to link bcc. This is most likely to be used in systems that don't build/provide the llvm-static and clang-static package options (fedora-based). * rpm: enable llvm_shared and python3 build options Enable rpm packaging with two new features: - shared-only packaging (no static linking) - python3 To enable these build features (off by default), run: RPM_WITH_OPTS="--with llvm_shared --with python3" ./scripts/build-rpm.sh * rpm: protect python3-bcc package declaration Don't define python3-bcc if --with python3 isn't explicitly specified. * specs: only build python3 if requested * man: compress man pages * specs: enable python3 by default in fc28+/rh8+ - Enable llvm_shared and python3 --with options by default in new fedora - Fix string quoting - Update spec changelog
- Loading branch information
1 parent
5148fce
commit e8001c3
Showing
9 changed files
with
95 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,31 @@ | |
%else | ||
%{!?with_lua: %global with_lua 1} | ||
%endif | ||
|
||
# use --with shared to only link against libLLVM.so | ||
%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 | ||
%bcond_without llvm_shared | ||
%else | ||
%bcond_with llvm_shared | ||
%endif | ||
|
||
# Build python3 support for distributions that have it | ||
%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 | ||
%bcond_without python3 | ||
%else | ||
%bcond_with python3 | ||
%endif | ||
|
||
%if %{with python3} | ||
%global __python %{__python3} | ||
%global python_bcc python3-bcc | ||
%global python_cmds python2;python3 | ||
%else | ||
%global __python %{__python2} | ||
%global python_bcc python2-bcc | ||
%global python_cmds python2 | ||
%endif | ||
|
||
%define debug_package %{nil} | ||
|
||
Name: bcc | ||
|
@@ -20,12 +45,18 @@ Source0: bcc.tar.gz | |
ExclusiveArch: x86_64 ppc64 aarch64 ppc64le | ||
BuildRequires: bison cmake >= 2.8.7 flex make | ||
BuildRequires: gcc gcc-c++ python2-devel elfutils-libelf-devel-static | ||
%if %{with python3} | ||
BuildRequires: python3-devel | ||
%endif | ||
%if %{with_lua} | ||
BuildRequires: luajit luajit-devel | ||
%endif | ||
%if %{without local_clang_static} | ||
BuildRequires: llvm-devel llvm-static | ||
BuildRequires: llvm-devel | ||
BuildRequires: clang-devel | ||
%if %{without llvm_shared} | ||
BuildRequires: llvm-static | ||
%endif | ||
%endif | ||
BuildRequires: pkgconfig ncurses-devel | ||
|
||
|
@@ -48,26 +79,42 @@ mkdir build | |
pushd build | ||
cmake .. -DREVISION_LAST=%{version} -DREVISION=%{version} \ | ||
-DCMAKE_INSTALL_PREFIX=/usr \ | ||
%{?lua_config} | ||
%{?lua_config} \ | ||
-DPYTHON_CMD="%{python_cmds}" \ | ||
%{?with_llvm_shared:-DENABLE_LLVM_SHARED=1} | ||
make %{?_smp_mflags} | ||
popd | ||
|
||
%install | ||
pushd build | ||
make install/strip DESTDIR=%{buildroot} | ||
# mangle shebangs | ||
find %{buildroot}/usr/share/bcc/{tools,examples} -type f -exec \ | ||
sed -i -e '1 s|^#!/usr/bin/python$|#!'%{__python}'|' \ | ||
-e '1 s|^#!/usr/bin/env python$|#!'%{__python}'|' {} \; | ||
|
||
%package -n libbcc | ||
Summary: Shared Library for BPF Compiler Collection (BCC) | ||
Requires: elfutils-libelf | ||
%description -n libbcc | ||
Shared Library for BPF Compiler Collection (BCC) | ||
|
||
%package -n python-bcc | ||
Summary: Python bindings for BPF Compiler Collection (BCC) | ||
%package -n python2-bcc | ||
Summary: Python2 bindings for BPF Compiler Collection (BCC) | ||
Requires: libbcc = %{version}-%{release} | ||
%description -n python-bcc | ||
%{?python_provide:%python_provide python2-bcc} | ||
%description -n python2-bcc | ||
Python bindings for BPF Compiler Collection (BCC) | ||
|
||
%if %{with python3} | ||
%package -n python3-bcc | ||
Summary: Python3 bindings for BPF Compiler Collection (BCC) | ||
Requires: libbcc = %{version}-%{release} | ||
%{?python_provide:%python_provide python3-bcc} | ||
%description -n python3-bcc | ||
Python bindings for BPF Compiler Collection (BCC) | ||
%endif | ||
|
||
%if %{with_lua} | ||
%package -n bcc-lua | ||
Summary: Standalone tool to run BCC tracers written in Lua | ||
|
@@ -78,7 +125,7 @@ Standalone tool to run BCC tracers written in Lua | |
|
||
%package -n libbcc-examples | ||
Summary: Examples for BPF Compiler Collection (BCC) | ||
Requires: python-bcc = %{version}-%{release} | ||
Requires: %{python_bcc} = %{version}-%{release} | ||
%if %{with_lua} | ||
Requires: bcc-lua = %{version}-%{release} | ||
%endif | ||
|
@@ -87,16 +134,21 @@ Examples for BPF Compiler Collection (BCC) | |
|
||
%package -n bcc-tools | ||
Summary: Command line tools for BPF Compiler Collection (BCC) | ||
Requires: python-bcc = %{version}-%{release} | ||
Requires: %{python_bcc} = %{version}-%{release} | ||
%description -n bcc-tools | ||
Command line tools for BPF Compiler Collection (BCC) | ||
|
||
%files -n libbcc | ||
/usr/lib64/* | ||
/usr/include/bcc/* | ||
|
||
%files -n python-bcc | ||
%{python_sitelib}/bcc* | ||
%files -n python2-bcc | ||
%{python2_sitelib}/bcc* | ||
|
||
%if %{with python3} | ||
%files -n python3-bcc | ||
%{python3_sitelib}/bcc* | ||
%endif | ||
|
||
%if %{with_lua} | ||
%files -n bcc-lua | ||
|
@@ -122,6 +174,11 @@ Command line tools for BPF Compiler Collection (BCC) | |
%postun -n libbcc -p /sbin/ldconfig | ||
|
||
%changelog | ||
* Wed Jul 18 2018 Brenden Blanco <[email protected]> - 0.6.0-1 | ||
- Make python3 the default when possible | ||
- Add with llvm_shared conditional | ||
- Add python2/python3 package targets | ||
|
||
* Mon Nov 21 2016 William Cohen <[email protected]> - 0.2.0-1 | ||
- Revise bcc.spec to address rpmlint issues and build properly in Fedora koji. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,12 @@ | ||
find_program(GZIP gzip) | ||
file(GLOB FILES *.8) | ||
install(FILES ${FILES} DESTINATION share/bcc/man/man8) | ||
set(GZFILES "") | ||
foreach(FIL ${FILES}) | ||
get_filename_component(NAME ${FIL} NAME) | ||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz | ||
COMMAND ${GZIP} -c ${FIL} > ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz | ||
DEPENDS ${FIL}) | ||
list(APPEND GZFILES "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz") | ||
endforeach() | ||
add_custom_target(man ALL DEPENDS ${GZFILES}) | ||
install(FILES ${GZFILES} DESTINATION share/bcc/man/man8) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters