The package rpms/bcc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/bcc.git/commit/?id=3299163deb01ae...
https://src.fedoraproject.org/cgit/rpms/bcc.git/commit/?id=72619e09959bbb....
Change:
+ExclusiveArch: x86_64 %{power64}
+ExclusiveArch: x86_64
Thanks.
Full change:
============
commit 3299163deb01ae6329efa5fc4adb28d6df7b13b6
Author: Rafael Santos <rdossant(a)redhat.com>
Date: Wed Nov 1 14:53:51 2017 +0100
Update package to lastest upstream release
- Resolves #1460482 - rebase to new release
- Resolves #1505506 - add support for LLVM 5.0
- Resolves #1460482 - BPF module compilation issue
- Partially address #1479990 - location of man pages
- Enable ppc64(le) support without lua
- Soname versioning for libbpf by ignatenkobrain
- Incorporate many spec file fixes by ignatenkobrain
diff --git a/.gitignore b/.gitignore
index 6b7472f..02b7794 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/v0.2.0.tar.gz
/v0.3.0.tar.gz
/bcc-0.3.0.tar.gz
+/bcc-0.4.0.tar.gz
diff --git a/0001-set-SOVERSION-for-bpf-shared.patch
b/0001-set-SOVERSION-for-bpf-shared.patch
new file mode 100644
index 0000000..d4aa08c
--- /dev/null
+++ b/0001-set-SOVERSION-for-bpf-shared.patch
@@ -0,0 +1,25 @@
+From 56f7d9aa223d9123174f6eec9683111f063794fc Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+Date: Wed, 1 Nov 2017 08:07:10 +0100
+Subject: [PATCH] set SOVERSION for bpf-shared
+
+Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
+---
+ src/cc/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/cc/CMakeLists.txt b/src/cc/CMakeLists.txt
+index c31936e..b552f45 100644
+--- a/src/cc/CMakeLists.txt
++++ b/src/cc/CMakeLists.txt
+@@ -25,6 +25,7 @@ include(static_libstdc++)
+ add_library(bpf-static STATIC libbpf.c perf_reader.c)
+ set_target_properties(bpf-static PROPERTIES OUTPUT_NAME bpf)
+ add_library(bpf-shared SHARED libbpf.c perf_reader.c)
++set_target_properties(bpf-shared PROPERTIES VERSION ${REVISION_LAST} SOVERSION 0)
+ set_target_properties(bpf-shared PROPERTIES OUTPUT_NAME bpf)
+
+ set(bcc_common_sources bpf_common.cc bpf_module.cc exported_files.cc)
+--
+2.14.3
+
diff --git a/bcc.spec b/bcc.spec
index 7cab921..15e15ed 100644
--- a/bcc.spec
+++ b/bcc.spec
@@ -1,21 +1,32 @@
+# luajit is not available for some architectures
+%ifarch ppc64 ppc64le
+%bcond_with lua
+%else
+%bcond_without lua
+%endif
+
Name: bcc
-Version: 0.3.0
-Release: 4%{?dist}
+Version: 0.4.0
+Release: 1%{?dist}
Summary: BPF Compiler Collection (BCC)
License: ASL 2.0
URL:
https://github.com/iovisor/bcc
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+#
https://github.com/iovisor/bcc/pull/1426
+Patch0: 0001-set-SOVERSION-for-bpf-shared.patch
# Arches will be included as upstream support is added and dependencies are
# satisfied in the respective arches
-ExclusiveArch: x86_64
+ExclusiveArch: x86_64 %{power64}
BuildRequires: bison, cmake >= 2.8.7, flex, libxml2-devel
BuildRequires: python3-devel
-BuildRequires: elfutils-libelf-devel-static
+BuildRequires: elfutils-libelf-devel
BuildRequires: llvm-devel llvm-static clang-devel
BuildRequires: ncurses-devel
+%if %{with lua}
BuildRequires: pkgconfig(luajit)
+%endif
Requires: %{name}-tools = %{version}-%{release}
@@ -40,8 +51,8 @@ application that use BPF Compiler Collection (BCC).
%package doc
Summary: Examples for BPF Compiler Collection (BCC)
-Requires: python3-%{name} = %{version}-%{release}
-Requires: %{name}-lua = %{version}-%{release}
+Recommends: python3-%{name} = %{version}-%{release}
+Recommends: %{name}-lua = %{version}-%{release}
BuildArch: noarch
%description doc
@@ -57,18 +68,21 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Python3 bindings for BPF Compiler Collection (BCC)
+%if %{with lua}
%package lua
Summary: Standalone tool to run BCC tracers written in Lua
Requires: %{name}%{?_isa} = %{version}-%{release}
%description lua
Standalone tool to run BCC tracers written in Lua
+%endif
%package tools
Summary: Command line tools for BPF Compiler Collection (BCC)
Requires: python3-%{name} = %{version}-%{release}
Requires: python3-netaddr
+Requires: kernel-devel
BuildArch: noarch
%description tools
@@ -80,9 +94,9 @@ Command line tools for BPF Compiler Collection (BCC)
%build
-%cmake . -DREVISION_LAST=%{version} -DREVISION=%{version} -DPYTHON_CMD=python3 \
- -DLUAJIT_INCLUDE_DIR=`pkg-config --variable=includedir luajit` \
- -DLUAJIT_LIBRARIES=`pkg-config --variable=libdir luajit`/lib`pkg-config
--variable=libname luajit`.so
+%cmake . \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DREVISION_LAST=%{version} -DREVISION=%{version} -DPYTHON_CMD=python3
%make_build
@@ -90,22 +104,20 @@ Command line tools for BPF Compiler Collection (BCC)
%make_install
# Fix python shebangs
-for i in `find %{buildroot}/usr/share/%{name}/tools/ -type f`; do
- sed -i 's/\/usr\/bin\/env python\>/\/usr\/bin\/python3/' $i
- sed -i 's/\/usr\/bin\/python\>/&3/' $i
+for i in `find %{buildroot}%{_datadir}/%{name}/tools/ -type f`; do
+ sed -i '1s=^#!/usr/bin/\(python\|env python\)[0-9.]*=#!%{__python3}=' $i
done
-# Examples in /usr/share shouldn't contain binaries according to FHS
-rm -rf %{buildroot}/usr/share/%{name}/examples/cpp
-for i in `find %{buildroot}/usr/share/%{name}/examples/ -type f`; do
- sed -i 's/\/usr\/bin\/env python\>/\/usr\/bin\/python3/' $i
- sed -i 's/\/usr\/bin\/python\>/&3/' $i
- sed -i 's/\/usr\/bin\/env bcc-lua\>/\/usr\/bin\/bcc-lua/' $i
- chmod -x $i
+for i in `find %{buildroot}%{_datadir}/%{name}/examples/ -type f`; do
+ sed -i '1s=^#!/usr/bin/\(python\|env python\)[0-9.]*=#!%{__python3}=' $i
+ sed -i '1s=^#!/usr/bin/env bcc-lua.*=#!/usr/bin/bcc-lua=' $i
done
-# Compress man pages
-find %{buildroot}/usr/share/%{name}/man/man8/ -name "*.8" -exec gzip {} \;
+# Move man pages to the right location
+mkdir -p %{buildroot}%{_mandir}
+mv %{buildroot}%{_datadir}/%{name}/man/* %{buildroot}%{_mandir}/
+mkdir -p %{buildroot}%{_docdir}/%{name}
+mv %{buildroot}%{_datadir}/%{name}/examples %{buildroot}%{_docdir}/%{name}/
# We cannot run the test suit since it requires root and it makes changes to
# the machine (e.g, IP address)
@@ -120,9 +132,11 @@ find %{buildroot}/usr/share/%{name}/man/man8/ -name "*.8"
-exec gzip {} \;
%doc README.md
%license LICENSE.txt COPYRIGHT.txt
%{_libdir}/lib%{name}.so.*
+%{_libdir}/libbpf.so.*
%files devel
%{_libdir}/lib%{name}.so
+%{_libdir}/libbpf.so
%{_libdir}/pkgconfig/lib%{name}.pc
%{_includedir}/%{name}/
@@ -130,28 +144,31 @@ find %{buildroot}/usr/share/%{name}/man/man8/ -name "*.8"
-exec gzip {} \;
%{python3_sitelib}/%{name}*
%files doc
-%dir %{_datadir}/%{name}
-%doc %{_datadir}/%{name}/examples/
-%exclude %{_datadir}/%{name}/examples/*.pyc
-%exclude %{_datadir}/%{name}/examples/*.pyo
-%exclude %{_datadir}/%{name}/examples/*/*.pyc
-%exclude %{_datadir}/%{name}/examples/*/*.pyo
-%exclude %{_datadir}/%{name}/examples/*/*/*.pyc
-%exclude %{_datadir}/%{name}/examples/*/*/*.pyo
+%dir %{_docdir}/%{name}
+%doc %{_docdir}/%{name}/examples/
%files tools
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/tools
%{_datadir}/%{name}/tools/*
%exclude %{_datadir}/%{name}/tools/old/
-%dir %{_datadir}/%{name}/man
-%{_datadir}/%{name}/man/*
+%{_mandir}/man8/*
+%if %{with lua}
%files lua
%{_bindir}/bcc-lua
+%endif
%changelog
+* Wed Nov 01 2017 Rafael Fonseca <rdossant(a)redhat.com> - 0.4.0-1
+- Resolves #1460482 - rebase to new release
+- Resolves #1505506 - add support for LLVM 5.0
+- Resolves #1460482 - BPF module compilation issue
+- Partially address #1479990 - location of man pages
+- Enable ppc64(le) support without lua
+- Soname versioning for libbpf by ignatenkobrain
+
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.3.0-4
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
diff --git a/sources b/sources
index b907822..0f339fd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (bcc-0.3.0.tar.gz) =
e5a0f9ad1b0ba865b5644a5a4a0ad130708aac882239ed545bcfd74a5d80328361bc92287bad5569710849682501841e89279089efc71a97da4e02bfc709b916
+SHA512 (bcc-0.4.0.tar.gz) =
d4bca6ab30ed2d398685a5e142bc55ebd70d29b494ce9fa28d85aceb1843111de8f1c61049712d8be9ab827b65866db07b6be27e82bd243e182b7bbe6fb2014f
commit 72619e09959bbb223382fb86495ed190cc9a042d
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed Nov 1 07:49:45 2017 +0100
use spaces consistently
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/bcc.spec b/bcc.spec
index dab8672..7cab921 100644
--- a/bcc.spec
+++ b/bcc.spec
@@ -1,23 +1,23 @@
-Name: bcc
-Version: 0.3.0
-Release: 4%{?dist}
-Summary: BPF Compiler Collection (BCC)
-License: ASL 2.0
-URL:
https://github.com/iovisor/bcc
-Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+Name: bcc
+Version: 0.3.0
+Release: 4%{?dist}
+Summary: BPF Compiler Collection (BCC)
+License: ASL 2.0
+URL:
https://github.com/iovisor/bcc
+Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
# Arches will be included as upstream support is added and dependencies are
# satisfied in the respective arches
-ExclusiveArch: x86_64
+ExclusiveArch: x86_64
-BuildRequires: bison, cmake >= 2.8.7, flex, libxml2-devel
-BuildRequires: python3-devel
-BuildRequires: elfutils-libelf-devel-static
-BuildRequires: llvm-devel llvm-static clang-devel
-BuildRequires: ncurses-devel
-BuildRequires: pkgconfig(luajit)
+BuildRequires: bison, cmake >= 2.8.7, flex, libxml2-devel
+BuildRequires: python3-devel
+BuildRequires: elfutils-libelf-devel-static
+BuildRequires: llvm-devel llvm-static clang-devel
+BuildRequires: ncurses-devel
+BuildRequires: pkgconfig(luajit)
-Requires: %{name}-tools = %{version}-%{release}
+Requires: %{name}-tools = %{version}-%{release}
%description
BCC is a toolkit for creating efficient kernel tracing and manipulation
@@ -30,8 +30,8 @@ performance analysis and network traffic control.
%package devel
-Summary: Shared library for BPF Compiler Collection (BCC)
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Summary: Shared library for BPF Compiler Collection (BCC)
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for developing
@@ -39,18 +39,18 @@ application that use BPF Compiler Collection (BCC).
%package doc
-Summary: Examples for BPF Compiler Collection (BCC)
-Requires: python3-%{name} = %{version}-%{release}
-Requires: %{name}-lua = %{version}-%{release}
-BuildArch: noarch
+Summary: Examples for BPF Compiler Collection (BCC)
+Requires: python3-%{name} = %{version}-%{release}
+Requires: %{name}-lua = %{version}-%{release}
+BuildArch: noarch
%description doc
Examples for BPF Compiler Collection (BCC)
%package -n python3-%{name}
-Summary: Python3 bindings for BPF Compiler Collection (BCC)
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Summary: Python3 bindings for BPF Compiler Collection (BCC)
+Requires: %{name}%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-%{srcname}}
%description -n python3-%{name}
@@ -58,18 +58,18 @@ Python3 bindings for BPF Compiler Collection (BCC)
%package lua
-Summary: Standalone tool to run BCC tracers written in Lua
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Summary: Standalone tool to run BCC tracers written in Lua
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description lua
Standalone tool to run BCC tracers written in Lua
%package tools
-Summary: Command line tools for BPF Compiler Collection (BCC)
-Requires: python3-%{name} = %{version}-%{release}
-Requires: python3-netaddr
-BuildArch: noarch
+Summary: Command line tools for BPF Compiler Collection (BCC)
+Requires: python3-%{name} = %{version}-%{release}
+Requires: python3-netaddr
+BuildArch: noarch
%description tools
Command line tools for BPF Compiler Collection (BCC)
@@ -81,8 +81,8 @@ Command line tools for BPF Compiler Collection (BCC)
%build
%cmake . -DREVISION_LAST=%{version} -DREVISION=%{version} -DPYTHON_CMD=python3 \
- -DLUAJIT_INCLUDE_DIR=`pkg-config --variable=includedir luajit` \
- -DLUAJIT_LIBRARIES=`pkg-config --variable=libdir luajit`/lib`pkg-config
--variable=libname luajit`.so
+ -DLUAJIT_INCLUDE_DIR=`pkg-config --variable=includedir luajit` \
+ -DLUAJIT_LIBRARIES=`pkg-config --variable=libdir luajit`/lib`pkg-config
--variable=libname luajit`.so
%make_build
@@ -91,17 +91,17 @@ Command line tools for BPF Compiler Collection (BCC)
# Fix python shebangs
for i in `find %{buildroot}/usr/share/%{name}/tools/ -type f`; do
- sed -i 's/\/usr\/bin\/env python\>/\/usr\/bin\/python3/' $i
- sed -i 's/\/usr\/bin\/python\>/&3/' $i
+ sed -i 's/\/usr\/bin\/env python\>/\/usr\/bin\/python3/' $i
+ sed -i 's/\/usr\/bin\/python\>/&3/' $i
done
# Examples in /usr/share shouldn't contain binaries according to FHS
rm -rf %{buildroot}/usr/share/%{name}/examples/cpp
for i in `find %{buildroot}/usr/share/%{name}/examples/ -type f`; do
- sed -i 's/\/usr\/bin\/env python\>/\/usr\/bin\/python3/' $i
- sed -i 's/\/usr\/bin\/python\>/&3/' $i
- sed -i 's/\/usr\/bin\/env bcc-lua\>/\/usr\/bin\/bcc-lua/' $i
- chmod -x $i
+ sed -i 's/\/usr\/bin\/env python\>/\/usr\/bin\/python3/' $i
+ sed -i 's/\/usr\/bin\/python\>/&3/' $i
+ sed -i 's/\/usr\/bin\/env bcc-lua\>/\/usr\/bin\/bcc-lua/' $i
+ chmod -x $i
done
# Compress man pages