Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
bcc
bcc.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bcc.spec of Package bcc
# # spec file for package bcc # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %if 0%{?suse_version} > 1500 %ifarch %ix86 x86_64 %{!?with_lua: %global with_lua 1} %else %{!?with_lua: %global with_lua 0} %endif %else %{!?with_lua: %global with_lua 0} %endif # Use default LLVM on openSUSE unless it is not yet supported %if 0%{?suse_version} >= 1600 || 0%{?is_opensuse} %if 0%{?product_libs_llvm_ver} > 17 %define llvm_major_version 17 %else %define llvm_major_version %{nil} %endif %else # Hard-code latest LLVM for SLES, the default version is too old %if 0%{?sle_version} == 150600 %define llvm_major_version 17 %else %if 0%{?sle_version} == 150500 %define llvm_major_version 15 %else %if 0%{?sle_version} == 150400 %define llvm_major_version 11 %endif %endif %endif %endif Name: bcc Version: 0.30.0 Release: 0 Summary: BPF Compiler Collection (BCC) License: Apache-2.0 Group: Development/Tools/Other URL: https://github.com/iovisor/bcc Source: https://github.com/iovisor/bcc/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz ExcludeArch: ppc s390 BuildRequires: bison BuildRequires: cmake >= 2.8.7 BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: libbpf-devel BuildRequires: libelf-devel BuildRequires: llvm%{llvm_major_version}-devel %if 0%{?suse_version} > 1320 BuildRequires: clang%{llvm_major_version}-devel BuildRequires: llvm%{llvm_major_version}-gold %else BuildRequires: libstdc++-devel %endif %if %{with_lua} BuildRequires: luajit-devel %endif BuildRequires: pkg-config BuildRequires: python3-base BuildRequires: python3-setuptools %description BCC is a toolkit for creating efficient kernel tracing and manipulation programs, and includes several useful tools and examples. It makes use of eBPF (Extended Berkeley Packet Filters), a feature that was first added to Linux 3.15. Much of what BCC uses requires Linux 4.1 and above. %package -n libbcc0 Summary: Shared library from the BPF Compiler Collection Group: System/Libraries Requires: kernel >= 4.1.0 Requires: kernel-devel >= 4.1.0 Requires: (kernel-debug-devel if kernel-debug) Requires: (kernel-default-devel if (kernel-default or kernel-default-base)) Requires: (kernel-kvmsmall-devel if kernel-kvmsmall) Requires: (kernel-pae-devel if kernel-pae) Requires: (kernel-vanilla-devel if kernel-vanilla) %description -n libbcc0 Shared Library from the BPF Compiler Collection. %package devel Summary: Header files for the BPF Compiler Collection Group: Development/Languages/C and C++ Requires: libbcc0 = %{version} # See https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/message/LNX2YOF3PQCFUJHCXZ5422EWK7JAGYDY/ Requires: llvm%{_llvm_sonum}-devel %description devel Headers and pkg-config build descriptions for developing BCC programs. %package -n python3-bcc Summary: Python3 bindings for the BPF Compiler Collection Group: Development/Languages/Python Requires: libbcc0 = %{version} BuildArch: noarch %description -n python3-bcc Python 3.x bindings for the BPF Compiler Collection. %package lua Summary: Lua interpreter for the BPF Compiler Collection Group: Development/Languages/Other Requires: libbcc0 = %{version} %description lua Lua interpreter for the BPF Compiler Collection. %package examples Summary: Examples from the BPF Compiler Collection Group: Documentation/Other Requires: python3-bcc = %{version} Recommends: netperf Recommends: python3-netaddr Recommends: python3-pyroute2 BuildArch: noarch %description examples Python and C examples from the BPF Compiler Collection. %package tools Summary: Tracing tools from the BPF Compiler Collection # ausyscall from audit is required by syscount.py Group: System/Monitoring Requires: audit Requires: python3-bcc = %{version} %description tools Python tracing scripts from the BPF Compiler Collection. %package docs Summary: BPF Compiler Collection documentation Group: Documentation/Other BuildArch: noarch %description docs Documentation on how to write programs with the BPF Compiler Collection. %prep %setup -q %build # Prevent the cpp examples from compilation and installation # Those programs are statically linked and huge in binary size. sed -i "/add_subdirectory(cpp)/d" examples/CMakeLists.txt # Remove the lua scripts if bcc-lua is disabled %if %{with_lua} == 0 sed -i "/add_subdirectory(lua)/d" examples/CMakeLists.txt %endif # Install bps to /usr/bin sed -i "s,share/bcc/introspection,bin," introspection/CMakeLists.txt export LD_LIBRARY_PATH="%{_builddir}/usr/lib64" export PATH="%{_builddir}/usr/bin":$PATH mkdir build pushd build CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" cmake \ -DCMAKE_USE_LIBBPF_PACKAGE=yes \ -DPYTHON_CMD=python3 \ -DREVISION_LAST=%{version} \ -DREVISION=%{version} \ -DCMAKE_INSTALL_PREFIX=/usr \ %if 0%{?suse_version} > 1320 -DENABLE_LLVM_SHARED=1 \ %endif %if %{with_lua} -DLUAJIT_INCLUDE_DIR=`pkg-config --variable=includedir luajit` \ -DLUAJIT_LIBRARY=%{_libdir}/lib`pkg-config --variable=libname luajit`.so \ -DENABLE_NO_PIE=OFF \ %endif %ifarch %arm || %ix86 -DENABLE_USDT=OFF \ %endif -DENABLE_TESTS=OFF \ .. make %{?_smp_mflags} VERBOSE=1 popd # Fix up #!-lines. find tools/ examples/ -type f -exec \ sed -Ei '1s|^#!/usr/bin/env python3?|#!/usr/bin/python3|' {} + find tools/ examples/ -type f -exec \ sed -Ei '1s|^#!/usr/bin/env bcc-lua|#!/usr/bin/bcc-lua|' {} + find tools/ examples/ -type f -exec \ sed -i '1s|/bin/python$|/bin/python3|g' {} + %install pushd build %make_install %if 0%{?suse_version} <= 1500 && 0%{?sle_version} < 150500 # Remove bps due to the incomplete support in kernel (bsc#1085403) rm -f %{buildroot}/%{_bindir}/bps %endif popd # Remove the static libraries rm -f %{buildroot}/%{_libdir}/libbcc*.a %post -n libbcc0 -p /sbin/ldconfig %postun -n libbcc0 -p /sbin/ldconfig %files -n bcc-devel %{_libdir}/libbcc.so %{_libdir}/libbcc_bpf.so %dir %{_includedir}/bcc/ %{_includedir}/bcc/* %{_libdir}/pkgconfig/libbcc.pc %files -n libbcc0 %license LICENSE.txt %{_libdir}/libbcc.so.* %{_libdir}/libbcc_bpf.so.* %files -n python3-bcc %{python3_sitelib}/bcc* %if %{with_lua} %files lua %{_bindir}/bcc-lua %endif %files examples %dir %{_datadir}/bcc/ %dir %{_datadir}/bcc/examples/ %{_datadir}/bcc/examples/* %files tools %dir %{_datadir}/bcc/ %dir %{_datadir}/bcc/tools/ %{_datadir}/bcc/tools/* %dir %{_datadir}/bcc/man/ %{_datadir}/bcc/man/* %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150500 %{_bindir}/bps %endif %files docs %doc README.md FAQ.txt %doc docs/kernel-versions.md docs/reference_guide.md %doc docs/tutorial_bcc_python_developer.md docs/tutorial.md %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor