Remove the unused Dockerfiles.
Create two flavors of spec files, one which includes steps to build
clang from source and link against it, and one which assumes clang is
already available and just builds bcc. The former is more appropriate
for official packaging, the latter for nightly and quick builds.
Also, introduce a numbering scheme for nightly rpm files. The format
will be:
`libbcc-$latest_git_tag-g$latest_git_hash.x86_64.rpm`
as in:
`libbcc-0.1.7-g73c4d1a.x86_64.rpm`
Update the INSTALL.md to mention the RPMs
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
for example:
```bash
-VER=4.3.0-040300
+VER=4.4.2-040402
PREFIX=http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.3-wily/
-REL=201511020949
+REL=201602171633
wget ${PREFIX}/linux-headers-${VER}-generic_${VER}.${REL}_amd64.deb
wget ${PREFIX}/linux-headers-${VER}_${VER}.${REL}_all.deb
wget ${PREFIX}/linux-image-${VER}-generic_${VER}.${REL}_amd64.deb
Update PREFIX to the latest date, and you can browse the files in the PREFIX url to find the REL number.
-Tagged bcc binary packages are built for Ubuntu Trusty (14.04) and hosted at
-http://52.8.15.63/apt/.
+Tagged and signed bcc binary packages are built for Ubuntu Trusty (14.04) and
+hosted at http://52.8.15.63/apt/.
To install:
```bash
http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, for example:
```bash
-sudo wget http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo -O /etc/yum.repos.d/fedora-rawhide-kernel-nodebug.repo
-sudo dnf install -y kernel-core-4.2.0-1.fc24.x86_64 kernel-4.2.0-1.fc24.x86_64 kernel-devel-4.2.0-1.fc24.x86_64 kernel-modules-4.2.0-1.fc24.x86_64 kernel-headers-4.2.0-1.fc24.x86_64
+sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
+sudo dnf update
# reboot
```
-Tagged bcc binary packages are built for Fedora 22 and hosted at
-http://52.8.15.63/yum/.
+Nightly bcc binary packages are built for Fedora 23 and 24, hosted at
+`http://52.8.15.63/yum/nightly/f{23,24}`.
-To install:
+To install (change 'f23' to 'f24' for rawhide):
```bash
-sudo wget http://52.8.15.63/yum/main/f22/iovisor.repo -O /etc/yum.repos.d/iovisor.repo
-sudo dnf install -y libbcc libbcc-examples python-bcc
+echo -e '[iovisor]\nbaseurl=http://52.8.15.63/yum/nightly/f23/$basearch\nenabled=1\ngpgcheck=0' | sudo tee /etc/yum.repos.d/iovisor.repo
+sudo dnf install bcc-tools
```
## Arch - AUR
```
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
-# optional
-export CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
cd ..; mkdir -p build/install; cd build
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install ..
-make -j4
+make
make install
export PATH=$PWD/install/bin:$PATH
```
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-FROM centos:6
-
-MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
-
-RUN yum -y install bison cmake flex gcc gcc-c++ git glibc-devel glibc-utils python2-devel rpm-build svn tar texinfo-tex wget zip zlib-devel
-
-WORKDIR /root
-RUN mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS}
-RUN cd SOURCES && wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
-RUN cd SOURCES && wget https://ftp.gnu.org/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.gz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
-RUN cd SOURCES && wget https://github.com/iovisor/bcc/archive/v0.1.7.tar.gz
-
-RUN cd SPECS && wget https://raw.githubusercontent.com/iovisor/bcc/v0.1.7/SPECS/bcc.el6.spec
-#COPY SPECS/bcc.el6.spec SPECS/
-
-RUN rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.el6.spec
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-FROM centos:6
-
-MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
-
-RUN yum -y install bison cmake flex gcc gcc-c++ git glibc-devel glibc-utils python2-devel rpm-build svn tar texinfo-tex wget zip zlib-devel
-
-WORKDIR /root
-RUN mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS}
-RUN cd SOURCES && wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
-RUN cd SOURCES && wget https://ftp.gnu.org/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.gz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
-RUN cd SOURCES && wget https://github.com/iovisor/bcc/archive/v@REVISION_LAST@.tar.gz
-
-RUN cd SPECS && wget https://raw.githubusercontent.com/iovisor/bcc/v@REVISION_LAST@/SPECS/bcc.el6.spec
-#COPY SPECS/bcc.el6.spec SPECS/
-
-RUN rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.el6.spec
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-FROM centos:7
-
-MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
-
-RUN yum -y install bison cmake flex gcc gcc-c++ make python2-devel rpm-build wget zlib-devel
-
-WORKDIR /root
-RUN mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS}
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
-RUN cd SOURCES && wget https://github.com/iovisor/bcc/archive/v0.1.7.tar.gz
-
-RUN cd SPECS && wget https://raw.githubusercontent.com/iovisor/bcc/v0.1.7/SPECS/bcc.el7.spec
-#COPY SPECS/bcc.el7.spec SPECS/
-
-RUN rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.el7.spec
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-FROM centos:7
-
-MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
-
-RUN yum -y install bison cmake flex gcc gcc-c++ make python2-devel rpm-build wget zlib-devel
-
-WORKDIR /root
-RUN mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS}
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
-RUN cd SOURCES && wget https://github.com/iovisor/bcc/archive/v@REVISION_LAST@.tar.gz
-
-RUN cd SPECS && wget https://raw.githubusercontent.com/iovisor/bcc/v@REVISION_LAST@/SPECS/bcc.el7.spec
-#COPY SPECS/bcc.el7.spec SPECS/
-
-RUN rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.el7.spec
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-FROM fedora:22
-
-MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
-
-RUN dnf -y install bison cmake flex gcc gcc-c++ libstdc++-static make python2-devel rpm-build wget zlib-devel
-
-WORKDIR /root
-RUN mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS}
-
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
-RUN cd SOURCES && wget https://github.com/iovisor/bcc/archive/v0.1.7.tar.gz
-
-RUN cd SPECS && wget https://raw.githubusercontent.com/iovisor/bcc/v0.1.7/SPECS/bcc.f22.spec
-#COPY SPECS/bcc.f22.spec SPECS/
-
-RUN rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.f22.spec
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-FROM fedora:22
-
-MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
-
-RUN dnf -y install bison cmake flex gcc gcc-c++ libstdc++-static make python2-devel rpm-build wget zlib-devel
-
-WORKDIR /root
-RUN mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS}
-
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
-RUN cd SOURCES && wget http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
-RUN cd SOURCES && wget https://github.com/iovisor/bcc/archive/v@REVISION_LAST@.tar.gz
-
-RUN cd SPECS && wget https://raw.githubusercontent.com/iovisor/bcc/v@REVISION_LAST@/SPECS/bcc.f22.spec
-#COPY SPECS/bcc.f22.spec SPECS/
-
-RUN rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.f22.spec
--- /dev/null
+# Copyright (c) PLUMgrid, Inc.
+# Licensed under the Apache License, Version 2.0 (the "License")
+
+FROM fedora:rawhide
+
+MAINTAINER Brenden Blanco <bblanco@plumgrid.com>
+
+RUN dnf -y install bison cmake flex gcc gcc-c++ git libxml2-devel make python2-devel rpm-build wget zlib-devel
+
+WORKDIR /root
+
+RUN wget http://llvm.org/releases/3.7.1/{cfe,llvm}-3.7.1.src.tar.xz
+
+RUN tar -xf llvm-3.7.1.src.tar.xz && mkdir llvm-3.7.1.src/tools/clang && tar -xf cfe-3.7.1.src.tar.xz -C llvm-3.7.1.src/tools/clang --strip 1 && mkdir llvm-3.7.1.src/build
+RUN cd llvm-3.7.1.src/build && cmake .. -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;BPF" -DCMAKE_INSTALL_PREFIX=/usr
+RUN cd llvm-3.7.1.src/build && make -j8
+
+COPY . bcc
+WORKDIR /root/bcc
+RUN PATH=/root/llvm-3.7.1.src/build/bin:$PATH ./scripts/build-rpm.sh
%define debug_package %{nil}
-%define llvmver 3.7.0
+%define llvmver 3.7.1
Name: bcc
-Version: @REVISION_LAST@
-Release: 1%{?dist}
+Version: @REVISION@
+Release: @GIT_REV_COUNT@
Summary: BPF Compiler Collection (BCC)
Group: Development/Languages
License: ASL 2.0
URL: https://github.com/iovisor/bcc
Source0: https://github.com/iovisor/bcc/archive/v%{version}.tar.gz
-Source1: http://llvm.org/releases/3.7.0/llvm-%{llvmver}.src.tar.xz
-Source2: http://llvm.org/releases/3.7.0/cfe-%{llvmver}.src.tar.xz
+Source1: http://llvm.org/releases/%{llvmver}/llvm-%{llvmver}.src.tar.xz
+Source2: http://llvm.org/releases/%{llvmver}/cfe-%{llvmver}.src.tar.xz
BuildArch: x86_64
-BuildRequires: bison, cmake >= 2.8.7, flex, gcc, gcc-c++, python2-devel
+BuildRequires: bison, cmake >= 2.8.7, flex, gcc, gcc-c++, libxml2-devel, python2-devel
%description
Python bindings for BPF Compiler Collection (BCC). Control a BPF program from
%setup -T -b 1 -n llvm-%{llvmver}.src
mkdir tools/clang
tar -xvvJf %{_sourcedir}/cfe-%{llvmver}.src.tar.xz -C tools/clang --strip 1
-%setup -D -n bcc-%{version}
+%setup -D -n bcc
%build
pushd %{_builddir}/llvm-%{llvmver}.src
mkdir build
cd build
-../configure --disable-assertions --enable-optimized --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
+cmake .. -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;BPF" -DCMAKE_INSTALL_PREFIX=/usr
+make %{?_smp_mflags}
+make install DESTDIR="%{_builddir}"
popd
mkdir build
pushd build
-cmake .. -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr
-make -j`grep -c ^process /proc/cpuinfo`
+cmake .. -DREVISION_LAST=%{version} -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr
+make %{?_smp_mflags}
popd
%install
%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
%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)
+
%files -n python-bcc
%{python_sitelib}/bcc*
-%exclude %{python_sitelib}/*.egg-info
%files -n libbcc
/usr/lib64/*
%files -n libbcc-examples
/usr/share/bcc/examples/*
+%exclude /usr/share/bcc/examples/*.pyc
+%exclude /usr/share/bcc/examples/*.pyo
+%exclude /usr/share/bcc/examples/*/*.pyc
+%exclude /usr/share/bcc/examples/*/*.pyo
+%exclude /usr/share/bcc/examples/*/*/*.pyc
+%exclude /usr/share/bcc/examples/*/*/*.pyo
+
+%files -n bcc-tools
+/usr/share/bcc/tools/*
+/usr/share/bcc/man/*
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-%define debug_package %{nil}
-%define llvmver 3.7.0
-%define gccver 5.1.0
-%define pythonver 2.7.10
-
-Name: bcc
-Version: 0.1.7
-Release: 1%{?dist}
-Summary: BPF Compiler Collection (BCC)
-
-Group: Development/Languages
-License: ASL 2.0
-URL: https://github.com/iovisor/bcc
-Source0: https://github.com/iovisor/bcc/archive/v%{version}.tar.gz
-Source1: https://ftp.gnu.org/gnu/gcc/gcc-%{gccver}/gcc-%{gccver}.tar.gz
-Source2: https://www.python.org/ftp/python/%{pythonver}/Python-%{pythonver}.tgz
-Source3: http://llvm.org/releases/3.7.0/llvm-%{llvmver}.src.tar.xz
-Source4: http://llvm.org/releases/3.7.0/cfe-%{llvmver}.src.tar.xz
-
-BuildArch: x86_64
-BuildRequires: bison, bzip2, cmake >= 2.8.7, file, flex, gcc, gcc-c++, git, glibc-devel, glibc-utils, python2-devel, rpm-build, svn, tar, texinfo-tex, wget, zip, zlib-devel
-
-%description
-Python bindings for BPF Compiler Collection (BCC). Control a BPF program
-from userspace.
-
-
-%prep
-%setup -T -b 1 -n gcc-%{gccver}
-%setup -T -D -b 2 -n Python-%{pythonver}
-%setup -T -D -b 3 -n llvm-%{llvmver}.src
-mkdir tools/clang
-tar -xvvJf %{_sourcedir}/cfe-%{llvmver}.src.tar.xz -C tools/clang --strip 1
-%setup -D -n bcc-%{version}
-
-%build
-
-export LD_LIBRARY_PATH="%{_builddir}/usr/lib64"
-export PATH="%{_builddir}/usr/bin":$PATH
-
-# build gcc to bootstrap llvm build
-pushd %{_builddir}/gcc-%{gccver}
-./contrib/download_prerequisites
-mkdir build
-cd build
-../configure --disable-multilib --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-echo "%{_builddir}/usr/lib64" > /etc/ld.so.conf.d/usrLocalLib64.conf
-ldconfig
-
-# build newer python for llvm
-pushd %{_builddir}/Python-%{pythonver}
-./configure --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-# build llvm with local gcc
-pushd %{_builddir}/llvm-%{llvmver}.src
-mkdir build
-cd build
-cmake .. -DCMAKE_INSTALL_PREFIX="%{_builddir}/usr" -DCMAKE_C_COMPILER="%{_builddir}/usr/bin/gcc" -DCMAKE_CXX_COMPILER="%{_builddir}/usr/bin/g++" -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;BPF"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-rm /etc/ld.so.conf.d/usrLocalLib64.conf
-ldconfig
-
-mkdir build
-cd build
-cmake .. -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_COMPILER="%{_builddir}/usr/bin/gcc" -DCMAKE_CXX_COMPILER="%{_builddir}/usr/bin/g++"
-make -j`grep -c ^process /proc/cpuinfo`
-
-%install
-cd build
-make install/strip DESTDIR=%{buildroot}
-
-%changelog
-* Fri Jul 03 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.1-2
-- Initial RPM Release
-
-%package -n libbcc
-Summary: Shared Library for BPF Compiler Collection (BCC)
-%description -n libbcc
-Shared Library for BPF Compiler Collection (BCC)
-
-%package -n libbcc-examples
-Summary: Examples for BPF Compiler Collection (BCC)
-%description -n libbcc-examples
-Examples for BPF Compiler Collection (BCC)
-
-%package -n python-bcc
-Summary: Python bindings for BPF Compiler Collection (BCC)
-%description -n python-bcc
-Python bindings for BPF Compiler Collection (BCC)
-
-%files -n python-bcc
-%{python_sitelib}/bcc*
-%exclude %{python_sitelib}/*.egg-info
-
-%files -n libbcc
-/usr/lib64/*
-/usr/include/bcc/*
-
-%files -n libbcc-examples
-/usr/share/bcc/examples/*
+++ /dev/null
-# Copyright (c) PLUMgrid, Inc.
-# Licensed under the Apache License, Version 2.0 (the "License")
-
-%define debug_package %{nil}
-%define llvmver 3.7.0
-%define gccver 5.1.0
-%define pythonver 2.7.10
-
-Name: bcc
-Version: @REVISION_LAST@
-Release: 1%{?dist}
-Summary: BPF Compiler Collection (BCC)
-
-Group: Development/Languages
-License: ASL 2.0
-URL: https://github.com/iovisor/bcc
-Source0: https://github.com/iovisor/bcc/archive/v%{version}.tar.gz
-Source1: https://ftp.gnu.org/gnu/gcc/gcc-%{gccver}/gcc-%{gccver}.tar.gz
-Source2: https://www.python.org/ftp/python/%{pythonver}/Python-%{pythonver}.tgz
-Source3: http://llvm.org/releases/3.7.0/llvm-%{llvmver}.src.tar.xz
-Source4: http://llvm.org/releases/3.7.0/cfe-%{llvmver}.src.tar.xz
-
-BuildArch: x86_64
-BuildRequires: bison, bzip2, cmake >= 2.8.7, file, flex, gcc, gcc-c++, git, glibc-devel, glibc-utils, python2-devel, rpm-build, svn, tar, texinfo-tex, wget, zip, zlib-devel
-
-%description
-Python bindings for BPF Compiler Collection (BCC). Control a BPF program
-from userspace.
-
-
-%prep
-%setup -T -b 1 -n gcc-%{gccver}
-%setup -T -D -b 2 -n Python-%{pythonver}
-%setup -T -D -b 3 -n llvm-%{llvmver}.src
-mkdir tools/clang
-tar -xvvJf %{_sourcedir}/cfe-%{llvmver}.src.tar.xz -C tools/clang --strip 1
-%setup -D -n bcc-%{version}
-
-%build
-
-export LD_LIBRARY_PATH="%{_builddir}/usr/lib64"
-export PATH="%{_builddir}/usr/bin":$PATH
-
-# build gcc to bootstrap llvm build
-pushd %{_builddir}/gcc-%{gccver}
-./contrib/download_prerequisites
-mkdir build
-cd build
-../configure --disable-multilib --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-echo "%{_builddir}/usr/lib64" > /etc/ld.so.conf.d/usrLocalLib64.conf
-ldconfig
-
-# build newer python for llvm
-pushd %{_builddir}/Python-%{pythonver}
-./configure --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-# build llvm with local gcc
-pushd %{_builddir}/llvm-%{llvmver}.src
-mkdir build
-cd build
-cmake .. -DCMAKE_INSTALL_PREFIX="%{_builddir}/usr" -DCMAKE_C_COMPILER="%{_builddir}/usr/bin/gcc" -DCMAKE_CXX_COMPILER="%{_builddir}/usr/bin/g++" -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;BPF"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-rm /etc/ld.so.conf.d/usrLocalLib64.conf
-ldconfig
-
-mkdir build
-cd build
-cmake .. -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_COMPILER="%{_builddir}/usr/bin/gcc" -DCMAKE_CXX_COMPILER="%{_builddir}/usr/bin/g++"
-make -j`grep -c ^process /proc/cpuinfo`
-
-%install
-cd build
-make install/strip DESTDIR=%{buildroot}
-
-%changelog
-* Fri Jul 03 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.1-2
-- Initial RPM Release
-
-%package -n libbcc
-Summary: Shared Library for BPF Compiler Collection (BCC)
-%description -n libbcc
-Shared Library for BPF Compiler Collection (BCC)
-
-%package -n libbcc-examples
-Summary: Examples for BPF Compiler Collection (BCC)
-%description -n libbcc-examples
-Examples for BPF Compiler Collection (BCC)
-
-%package -n python-bcc
-Summary: Python bindings for BPF Compiler Collection (BCC)
-%description -n python-bcc
-Python bindings for BPF Compiler Collection (BCC)
-
-%files -n python-bcc
-%{python_sitelib}/bcc*
-%exclude %{python_sitelib}/*.egg-info
-
-%files -n libbcc
-/usr/lib64/*
-/usr/include/bcc/*
-
-%files -n libbcc-examples
-/usr/share/bcc/examples/*
+++ /dev/null
-%define debug_package %{nil}
-%define llvmver 3.7.0
-
-Name: bcc
-Version: 0.1.7
-Release: 1%{?dist}
-Summary: BPF Compiler Collection (BCC)
-
-Group: Development/Languages
-License: ASL 2.0
-URL: https://github.com/iovisor/bcc
-Source0: https://github.com/iovisor/bcc/archive/v%{version}.tar.gz
-Source1: http://llvm.org/releases/3.7.0/llvm-%{llvmver}.src.tar.xz
-Source2: http://llvm.org/releases/3.7.0/cfe-%{llvmver}.src.tar.xz
-
-BuildArch: x86_64
-BuildRequires: bison, cmake >= 2.8.7, flex, gcc, gcc-c++, python2-devel
-
-%description
-Python bindings for BPF Compiler Collection (BCC). Control a BPF program from
-userspace.
-
-
-%prep
-%setup -T -b 1 -n llvm-%{llvmver}.src
-mkdir tools/clang
-tar -xvvJf %{_sourcedir}/cfe-%{llvmver}.src.tar.xz -C tools/clang --strip 1
-%setup -D -n bcc-%{version}
-
-%build
-
-export LD_LIBRARY_PATH="%{_builddir}/usr/lib64"
-export PATH="%{_builddir}/usr/bin":$PATH
-
-# build llvm
-pushd %{_builddir}/llvm-%{llvmver}.src
-mkdir build
-cd build
-../configure --disable-assertions --enable-optimized --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-mkdir build
-pushd build
-cmake .. -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr
-make -j`grep -c ^process /proc/cpuinfo`
-popd
-
-%install
-pushd build
-make install/strip DESTDIR=%{buildroot}
-
-%changelog
-* Fri Jul 03 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.1-2
-- Initial RPM Release
-
-%package -n libbcc
-Summary: Shared Library for BPF Compiler Collection (BCC)
-%description -n libbcc
-Shared Library for BPF Compiler Collection (BCC)
-
-%package -n libbcc-examples
-Summary: Examples for BPF Compiler Collection (BCC)
-%description -n libbcc-examples
-Examples for BPF Compiler Collection (BCC)
-
-%package -n python-bcc
-Summary: Python bindings for BPF Compiler Collection (BCC)
-%description -n python-bcc
-Python bindings for BPF Compiler Collection (BCC)
-
-%files -n python-bcc
-%{python_sitelib}/bcc*
-%exclude %{python_sitelib}/*.egg-info
-
-%files -n libbcc
-/usr/lib64/*
-/usr/include/bcc/*
-
-%files -n libbcc-examples
-/usr/share/bcc/examples/*
+++ /dev/null
-%define debug_package %{nil}
-%define llvmver 3.7.0
-
-Name: bcc
-Version: @REVISION_LAST@
-Release: 1%{?dist}
-Summary: BPF Compiler Collection (BCC)
-
-Group: Development/Languages
-License: ASL 2.0
-URL: https://github.com/iovisor/bcc
-Source0: https://github.com/iovisor/bcc/archive/v%{version}.tar.gz
-Source1: http://llvm.org/releases/3.7.0/llvm-%{llvmver}.src.tar.xz
-Source2: http://llvm.org/releases/3.7.0/cfe-%{llvmver}.src.tar.xz
-
-BuildArch: x86_64
-BuildRequires: bison, cmake >= 2.8.7, flex, gcc, gcc-c++, python2-devel
-
-%description
-Python bindings for BPF Compiler Collection (BCC). Control a BPF program from
-userspace.
-
-
-%prep
-%setup -T -b 1 -n llvm-%{llvmver}.src
-mkdir tools/clang
-tar -xvvJf %{_sourcedir}/cfe-%{llvmver}.src.tar.xz -C tools/clang --strip 1
-%setup -D -n bcc-%{version}
-
-%build
-
-export LD_LIBRARY_PATH="%{_builddir}/usr/lib64"
-export PATH="%{_builddir}/usr/bin":$PATH
-
-# build llvm
-pushd %{_builddir}/llvm-%{llvmver}.src
-mkdir build
-cd build
-../configure --disable-assertions --enable-optimized --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-mkdir build
-pushd build
-cmake .. -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr
-make -j`grep -c ^process /proc/cpuinfo`
-popd
-
-%install
-pushd build
-make install/strip DESTDIR=%{buildroot}
-
-%changelog
-* Fri Jul 03 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.1-2
-- Initial RPM Release
-
-%package -n libbcc
-Summary: Shared Library for BPF Compiler Collection (BCC)
-%description -n libbcc
-Shared Library for BPF Compiler Collection (BCC)
-
-%package -n libbcc-examples
-Summary: Examples for BPF Compiler Collection (BCC)
-%description -n libbcc-examples
-Examples for BPF Compiler Collection (BCC)
-
-%package -n python-bcc
-Summary: Python bindings for BPF Compiler Collection (BCC)
-%description -n python-bcc
-Python bindings for BPF Compiler Collection (BCC)
-
-%files -n python-bcc
-%{python_sitelib}/bcc*
-%exclude %{python_sitelib}/*.egg-info
-
-%files -n libbcc
-/usr/lib64/*
-/usr/include/bcc/*
-
-%files -n libbcc-examples
-/usr/share/bcc/examples/*
+++ /dev/null
-%define debug_package %{nil}
-%define llvmver 3.7.0
-
-Name: bcc
-Version: 0.1.7
-Release: 1%{?dist}
-Summary: BPF Compiler Collection (BCC)
-
-Group: Development/Languages
-License: ASL 2.0
-URL: https://github.com/iovisor/bcc
-Source0: https://github.com/iovisor/bcc/archive/v%{version}.tar.gz
-Source1: http://llvm.org/releases/3.7.0/llvm-%{llvmver}.src.tar.xz
-Source2: http://llvm.org/releases/3.7.0/cfe-%{llvmver}.src.tar.xz
-
-BuildArch: x86_64
-BuildRequires: bison, cmake >= 2.8.7, flex, gcc, gcc-c++, python2-devel
-
-%description
-Python bindings for BPF Compiler Collection (BCC). Control a BPF program from
-userspace.
-
-
-%prep
-%setup -T -b 1 -n llvm-%{llvmver}.src
-mkdir tools/clang
-tar -xvvJf %{_sourcedir}/cfe-%{llvmver}.src.tar.xz -C tools/clang --strip 1
-%setup -D -n bcc-%{version}
-
-%build
-
-export LD_LIBRARY_PATH="%{_builddir}/usr/lib64"
-export PATH="%{_builddir}/usr/bin":$PATH
-
-# build llvm
-pushd %{_builddir}/llvm-%{llvmver}.src
-mkdir build
-cd build
-../configure --disable-assertions --enable-optimized --prefix="%{_builddir}/usr"
-make -j`grep -c ^process /proc/cpuinfo`
-make install
-popd
-
-mkdir build
-pushd build
-cmake .. -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr
-make -j`grep -c ^process /proc/cpuinfo`
-popd
-
-%install
-pushd build
-make install/strip DESTDIR=%{buildroot}
-
-%changelog
-* Fri Jul 03 2015 Brenden Blanco <bblanco@plumgrid.com> - 0.1.1-2
-- Initial RPM Release
-
-%package -n libbcc
-Summary: Shared Library for BPF Compiler Collection (BCC)
-%description -n libbcc
-Shared Library for BPF Compiler Collection (BCC)
-
-%package -n libbcc-examples
-Summary: Examples for BPF Compiler Collection (BCC)
-%description -n libbcc-examples
-Examples for BPF Compiler Collection (BCC)
-
-%package -n python-bcc
-Summary: Python bindings for BPF Compiler Collection (BCC)
-%description -n python-bcc
-Python bindings for BPF Compiler Collection (BCC)
-
-%files -n python-bcc
-%{python_sitelib}/bcc*
-%exclude %{python_sitelib}/*.egg-info
-
-%files -n libbcc
-/usr/lib64/*
-/usr/include/bcc/*
-
-%files -n libbcc-examples
-/usr/share/bcc/examples/*
%define debug_package %{nil}
Name: bcc
-Version: 0.1.7
-Release: 1%{?dist}
+Version: @REVISION@
+Release: @GIT_REV_COUNT@
Summary: BPF Compiler Collection (BCC)
Group: Development/Languages
mkdir build
pushd build
cmake .. -DREVISION_LAST=%{version} -DREVISION=%{version} -DCMAKE_INSTALL_PREFIX=/usr
-make -j`grep -c ^process /proc/cpuinfo`
+make %{?_smp_mflags}
popd
%install
--- /dev/null
+#!/bin/bash
+
+set -x
+set -e
+
+TMP=$(mktemp -d /tmp/rpmbuild.XXXXXX)
+
+function cleanup() {
+ [[ -d $TMP ]] && rm -rf $TMP
+}
+trap cleanup EXIT
+
+mkdir $TMP/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+
+llvmver=3.7.1
+# only the most recent tag
+git_tag_latest=$(git describe --abbrev=0)
+git_rev_count=$(git rev-list $git_tag_latest.. --count)
+release=0
+if [[ "$git_rev_count" != "0" ]]; then
+ release=$(git log --pretty='g%h' -n 1)
+fi
+revision=${git_tag_latest:1}
+
+git archive HEAD --prefix=bcc/ --format=tar.gz -o $TMP/SOURCES/$git_tag_latest.tar.gz
+wget -P $TMP/SOURCES http://llvm.org/releases/$llvmver/{cfe,llvm}-$llvmver.src.tar.xz
+
+sed \
+ -e "s/^\(Version:\s*\)@REVISION@/\1$revision/" \
+ -e "s/^\(Release:\s*\)@GIT_REV_COUNT@/\1$release/" \
+ SPECS/bcc+clang.spec > $TMP/SPECS/bcc.spec
+
+pushd $TMP
+rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.spec
+popd
+
+cp $TMP/RPMS/*/*.rpm .
+cp $TMP/SRPMS/*.rpm .
trap cleanup EXIT
mkdir $TMP/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+
+llvmver=3.7.1
+# only the most recent tag
+git_tag_latest=$(git describe --abbrev=0)
+git_rev_count=$(git rev-list $git_tag_latest.. --count)
+release=0
+if [[ "$git_rev_count" != "0" ]]; then
+ release=$(git log --pretty='g%h' -n 1)
+fi
+revision=${git_tag_latest:1}
+
git archive HEAD --prefix=bcc/ --format=tar.gz -o $TMP/SOURCES/bcc.tar.gz
-cp SPECS/bcc.spec $TMP/SPECS/
+
+sed \
+ -e "s/^\(Version:\s*\)@REVISION@/\1$revision/" \
+ -e "s/^\(Release:\s*\)@GIT_REV_COUNT@/\1$release/" \
+ SPECS/bcc.spec > $TMP/SPECS/bcc.spec
+
pushd $TMP
rpmbuild --define "_topdir `pwd`" -ba SPECS/bcc.spec
popd