From 5794642fbaf43c1f84e3296dc7390d69b22edf4e Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 28 Nov 2016 13:51:28 -0500 Subject: [PATCH] =?UTF-8?q?Eliminate=20rpmlint=20errors=20and=20allow=20bc?= =?UTF-8?q?c=20srpm=20to=20build=20on=20Fedora=20koji=20b=E2=80=A6=20(#815?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Eliminate rpmlint errors and allow bcc srpm to build on Fedora koji build system The nightly bcc srpm does not build as-is on Fedora 24. To get the build to work the following changes were made in the bcc.spec file: -Specify where to find luajit headers and libraries -Correctly limit the build to the x86_64 architecture -Add needed build requires so the srpm can build on Fedora koji -Run ldconfig so shared library information is updated -Follow spec conventions by putting %changelog at the end of the spec file * Further refine the bcc.spec file Make the following improvements to the gcc.spec file: -Use local_clang_static variable to allow building with locally installed clang -Adjust build requires to include nucurses-devel and make -Put the subpackage descriptions and file list in a more logical order -Correct the binary rpm dependencies for the subpackages --- SPECS/bcc.spec | 89 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 35 deletions(-) diff --git a/SPECS/bcc.spec b/SPECS/bcc.spec index 1ddc957c98be..0beadca7c16a 100644 --- a/SPECS/bcc.spec +++ b/SPECS/bcc.spec @@ -1,3 +1,4 @@ +%bcond_with local_clang_static %define debug_package %{nil} Name: bcc @@ -10,8 +11,15 @@ License: ASL 2.0 URL: https://github.com/iovisor/bcc Source0: bcc.tar.gz -BuildArch: x86_64 -BuildRequires: bison, cmake >= 2.8.7, flex, gcc, gcc-c++, python2-devel, elfutils-libelf-devel-static +ExclusiveArch: x86_64 +BuildRequires: bison cmake >= 2.8.7 flex make +BuildRequires: gcc gcc-c++ python2-devel elfutils-libelf-devel-static +BuildRequires: luajit luajit-devel +%if %{without local_clang_static} +BuildRequires: llvm-devel llvm-static +BuildRequires: clang-devel +%endif +BuildRequires: pkgconfig ncurses-devel %description Python bindings for BPF Compiler Collection (BCC). Control a BPF program from @@ -19,13 +27,16 @@ userspace. %prep -%setup -n bcc +%setup -q -n bcc %build mkdir build pushd build -cmake .. -DREVISION_LAST=%{version} -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr +cmake .. -DREVISION_LAST=%{version} -DREVISION=%{version} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLUAJIT_INCLUDE_DIR=`pkg-config --variable=includedir luajit` \ + -DLUAJIT_LIBRARIES=`pkg-config --variable=libdir luajit`/lib`pkg-config --variable=libname luajit`.so make %{?_smp_mflags} popd @@ -33,56 +44,47 @@ popd pushd build make install/strip DESTDIR=%{buildroot} -%changelog -* Mon Apr 04 2016 Vicent Marti - 0.1.4-1 -- Add bcc-lua package - -* Sun Nov 29 2015 Brenden Blanco - 0.1.3-1 -- Add bcc-tools package - -* Mon Oct 12 2015 Brenden Blanco - 0.1.2-1 -- Add better version numbering into libbcc.so - -* Fri Jul 03 2015 Brenden Blanco - 0.1.1-2 -- Initial RPM Release - %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 libbcc-examples -Summary: Examples for BPF Compiler Collection (BCC) -Requires: libbcc -%description -n libbcc-examples -Examples for BPF Compiler Collection (BCC) - %package -n python-bcc Summary: Python bindings for BPF Compiler Collection (BCC) -Requires: libbcc +Requires: libbcc = %{version}-%{release} %description -n python-bcc Python bindings for BPF Compiler Collection (BCC) -%package -n bcc-tools -Summary: Command line tools for BPF Compiler Collection (BCC) -Requires: python-bcc -%description -n bcc-tools -Command line tools for BPF Compiler Collection (BCC) - %package -n bcc-lua Summary: Standalone tool to run BCC tracers written in Lua -Requires: libbcc +Requires: libbcc = %{version}-%{release} %description -n bcc-lua Standalone tool to run BCC tracers written in Lua -%files -n python-bcc -%{python_sitelib}/bcc* +%package -n libbcc-examples +Summary: Examples for BPF Compiler Collection (BCC) +Requires: python-bcc = %{version}-%{release} +Requires: bcc-lua = %{version}-%{release} +%description -n libbcc-examples +Examples for BPF Compiler Collection (BCC) + +%package -n bcc-tools +Summary: Command line tools for BPF Compiler Collection (BCC) +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 bcc-lua +/usr/bin/bcc-lua + %files -n libbcc-examples /usr/share/bcc/examples/* %exclude /usr/share/bcc/examples/*.pyc @@ -96,5 +98,22 @@ Standalone tool to run BCC tracers written in Lua /usr/share/bcc/tools/* /usr/share/bcc/man/* -%files -n bcc-lua -/usr/bin/bcc-lua +%post -n libbcc -p /sbin/ldconfig + +%postun -n libbcc -p /sbin/ldconfig + +%changelog +* Mon Nov 21 2016 William Cohen - 0.2.0-1 +- Revise bcc.spec to address rpmlint issues and build properly in Fedora koji. + +* Mon Apr 04 2016 Vicent Marti - 0.1.4-1 +- Add bcc-lua package + +* Sun Nov 29 2015 Brenden Blanco - 0.1.3-1 +- Add bcc-tools package + +* Mon Oct 12 2015 Brenden Blanco - 0.1.2-1 +- Add better version numbering into libbcc.so + +* Fri Jul 03 2015 Brenden Blanco - 0.1.1-2 +- Initial RPM Release