commit 996fb5a101da5b2326437a2f6f611c49727c6760 Author: MSVSphere Packaging Team Date: Fri Oct 25 14:01:04 2024 +0300 import bcc-0.30.0-3.el10 diff --git a/.bcc.metadata b/.bcc.metadata new file mode 100644 index 0000000..49f05c8 --- /dev/null +++ b/.bcc.metadata @@ -0,0 +1 @@ +26ec7f9fc22494b9b6f20cd38ca216edc130704e SOURCES/bcc-0.30.0.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4e91d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/bcc-0.30.0.tar.gz diff --git a/SOURCES/bcc-0.30.0-Revert-Fix-bashreadline-4903.patch b/SOURCES/bcc-0.30.0-Revert-Fix-bashreadline-4903.patch new file mode 100644 index 0000000..28b1a4a --- /dev/null +++ b/SOURCES/bcc-0.30.0-Revert-Fix-bashreadline-4903.patch @@ -0,0 +1,179 @@ +From 0e81f1ef9145b853745fdd56808388c9b295b1f9 Mon Sep 17 00:00:00 2001 +From: Jerome Marchand +Date: Fri, 4 Oct 2024 10:01:54 +0200 +Subject: [PATCH] Revert "Fix bashreadline (#4903)" + +This reverts commit 706ec4fe3dbbd63f6d7adda8d8d7311afe998cfa. +--- + docker/Dockerfile.ubuntu | 2 +- + docker/build/Dockerfile.fedora | 2 +- + docker/build/Dockerfile.ubuntu | 2 +- + libbpf-tools/bashreadline.c | 40 +++------------------------------- + tools/bashreadline.py | 18 +-------------- + 5 files changed, 7 insertions(+), 57 deletions(-) + +diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu +index a6afd969..cdb52871 100644 +--- a/docker/Dockerfile.ubuntu ++++ b/docker/Dockerfile.ubuntu +@@ -24,6 +24,6 @@ COPY --from=builder /root/bcc/*.deb /root/bcc/ + RUN \ + apt-get update -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y python3 python3-pip python-is-python3 binutils libelf1 kmod llvm-12-dev && \ +- pip3 install dnslib cachetools pyelftools && \ ++ pip3 install dnslib cachetools && \ + dpkg -i /root/bcc/*.deb && \ + apt-get clean +diff --git a/docker/build/Dockerfile.fedora b/docker/build/Dockerfile.fedora +index d135bcea..bf8c2b36 100644 +--- a/docker/build/Dockerfile.fedora ++++ b/docker/build/Dockerfile.fedora +@@ -59,7 +59,7 @@ RUN dnf -y install \ + iperf \ + netperf + +-RUN pip3 install pyroute2==0.5.18 netaddr==0.8.0 dnslib==0.9.14 cachetools==3.1.1 pyelftools==0.30 ++RUN pip3 install pyroute2==0.5.18 netaddr==0.8.0 dnslib==0.9.14 cachetools==3.1.1 + + RUN wget -O ruby-install-${RUBY_INSTALL_VERSION}.tar.gz \ + https://github.com/postmodern/ruby-install/archive/v${RUBY_INSTALL_VERSION}.tar.gz && \ +diff --git a/docker/build/Dockerfile.ubuntu b/docker/build/Dockerfile.ubuntu +index 50f4788a..7d29b66b 100644 +--- a/docker/build/Dockerfile.ubuntu ++++ b/docker/build/Dockerfile.ubuntu +@@ -81,7 +81,7 @@ done \ + && \ + apt-get -y clean' + +-RUN pip3 install pyroute2==0.5.18 netaddr==0.8.0 dnslib==0.9.14 cachetools==3.1.1 pyelftools==0.30 ++RUN pip3 install pyroute2==0.5.18 netaddr==0.8.0 dnslib==0.9.14 cachetools==3.1.1 + + # FIXME this is faster than building from source, but it seems there is a bug + # in probing libruby.so rather than ruby binary +diff --git a/libbpf-tools/bashreadline.c b/libbpf-tools/bashreadline.c +index 41b6a600..b069f048 100644 +--- a/libbpf-tools/bashreadline.c ++++ b/libbpf-tools/bashreadline.c +@@ -90,41 +90,6 @@ static void handle_lost_events(void *ctx, int cpu, __u64 lost_cnt) + warn("lost %llu events on CPU #%d\n", lost_cnt, cpu); + } + +-static char *find_readline_function_name(const char *bash_path) +-{ +- bool found = false; +- int fd = -1; +- Elf *elf = NULL; +- Elf_Scn *scn = NULL; +- GElf_Shdr shdr; +- +- +- elf = open_elf(bash_path, &fd); +- +- while ((scn = elf_nextscn(elf, scn)) != NULL && !found) { +- gelf_getshdr(scn, &shdr); +- if (shdr.sh_type == SHT_SYMTAB || shdr.sh_type == SHT_DYNSYM) { +- Elf_Data *data = elf_getdata(scn, NULL); +- if (data != NULL) { +- GElf_Sym *symtab = (GElf_Sym *) data->d_buf; +- int sym_count = shdr.sh_size / shdr.sh_entsize; +- for (int i = 0; i < sym_count; ++i) { +- if(strcmp("readline_internal_teardown", elf_strptr(elf, shdr.sh_link, symtab[i].st_name)) == 0){ +- found = true; +- break; +- } +- } +- } +- } +- } +- +- close_elf(elf,fd); +- if (found) +- return "readline_internal_teardown"; +- else +- return "readline"; +-} +- + static char *find_readline_so() + { + const char *bash_path = "/bin/bash"; +@@ -135,7 +100,7 @@ static char *find_readline_so() + char path[128]; + char *result = NULL; + +- func_off = get_elf_func_offset(bash_path, find_readline_function_name(bash_path)); ++ func_off = get_elf_func_offset(bash_path, "readline"); + if (func_off >= 0) + return strdup(bash_path); + +@@ -194,6 +159,7 @@ int main(int argc, char **argv) + err = argp_parse(&argp, argc, argv, 0, NULL, NULL); + if (err) + return err; ++ + if (libreadline_path) { + readline_so_path = libreadline_path; + } else if ((readline_so_path = find_readline_so()) == NULL) { +@@ -221,7 +187,7 @@ int main(int argc, char **argv) + goto cleanup; + } + +- func_off = get_elf_func_offset(readline_so_path, find_readline_function_name(readline_so_path)); ++ func_off = get_elf_func_offset(readline_so_path, "readline"); + if (func_off < 0) { + warn("cound not find readline in %s\n", readline_so_path); + goto cleanup; +diff --git a/tools/bashreadline.py b/tools/bashreadline.py +index 7e8324a2..cfbf2364 100755 +--- a/tools/bashreadline.py ++++ b/tools/bashreadline.py +@@ -17,7 +17,6 @@ + # 12-Feb-2016 Allan McAleavy migrated to BPF_PERF_OUTPUT + + from __future__ import print_function +-from elftools.elf.elffile import ELFFile + from bcc import BPF + from time import strftime + import argparse +@@ -33,19 +32,6 @@ args = parser.parse_args() + + name = args.shared if args.shared else "/bin/bash" + +- +-def get_sym(filename): +- with open(filename, 'rb') as f: +- elf = ELFFile(f) +- symbol_table = elf.get_section_by_name(".dynsym") +- for symbol in symbol_table.iter_symbols(): +- if symbol.name == "readline_internal_teardown": +- return "readline_internal_teardown" +- return "readline" +- +- +-sym = get_sym(name) +- + # load BPF program + bpf_text = """ + #include +@@ -77,18 +63,16 @@ int printret(struct pt_regs *ctx) { + """ + + b = BPF(text=bpf_text) +-b.attach_uretprobe(name=name, sym=sym, fn_name="printret") ++b.attach_uretprobe(name=name, sym="readline", fn_name="printret") + + # header + print("%-9s %-7s %s" % ("TIME", "PID", "COMMAND")) + +- + def print_event(cpu, data, size): + event = b["events"].event(data) + print("%-9s %-7d %s" % (strftime("%H:%M:%S"), event.pid, + event.str.decode('utf-8', 'replace'))) + +- + b["events"].open_perf_buffer(print_event) + while 1: + try: +-- +2.46.0 + diff --git a/SOURCES/bcc-0.30.0-clang-fail-when-the-kheaders-ownership-is-wrong-4928.patch b/SOURCES/bcc-0.30.0-clang-fail-when-the-kheaders-ownership-is-wrong-4928.patch new file mode 100644 index 0000000..34edd41 --- /dev/null +++ b/SOURCES/bcc-0.30.0-clang-fail-when-the-kheaders-ownership-is-wrong-4928.patch @@ -0,0 +1,76 @@ +From 32a47d9002269b391c0c7ff76aeb2c015deb4b59 Mon Sep 17 00:00:00 2001 +From: Jerome Marchand +Date: Fri, 17 May 2024 15:36:07 +0200 +Subject: [PATCH] clang: fail when the kheaders ownership is wrong (#4928) + (#4985) + +file_exists_and_ownedby() returns -1 when the file exists but its +ownership is unexpected, which is very misleading since anything non +zero is interpreted as true and a function with such a name is +expected to return a boolean. So currently all this does, is write a +warning message, and continues as if nothing is wrong. + +Make file_exists_and_ownedby() returns false when the ownership is +wrong and have get_proc_kheaders() fails when this happen. Also have +all the *exists* functions return bool to avoid such issues in the +future. + +Signed-off-by: Jerome Marchand +--- + src/cc/frontends/clang/kbuild_helper.cc | 22 +++++++++++++++++----- + 1 file changed, 17 insertions(+), 5 deletions(-) + +diff --git a/src/cc/frontends/clang/kbuild_helper.cc b/src/cc/frontends/clang/kbuild_helper.cc +index 9409e4cc..5d3ad9c2 100644 +--- a/src/cc/frontends/clang/kbuild_helper.cc ++++ b/src/cc/frontends/clang/kbuild_helper.cc +@@ -140,20 +140,26 @@ int KBuildHelper::get_flags(const char *uname_machine, vector *cflags) { + return 0; + } + +-static inline int file_exists_and_ownedby(const char *f, uid_t uid) ++static inline bool file_exists(const char *f) ++{ ++ struct stat buffer; ++ return (stat(f, &buffer) == 0); ++} ++ ++static inline bool file_exists_and_ownedby(const char *f, uid_t uid) + { + struct stat buffer; + int ret = stat(f, &buffer) == 0; + if (ret) { + if (buffer.st_uid != uid) { + std::cout << "ERROR: header file ownership unexpected: " << std::string(f) << "\n"; +- return -1; ++ return false; + } + } + return ret; + } + +-static inline int proc_kheaders_exists(void) ++static inline bool proc_kheaders_exists(void) + { + return file_exists_and_ownedby(PROC_KHEADERS_PATH, 0); + } +@@ -231,8 +237,14 @@ int get_proc_kheaders(std::string &dirpath) + uname_data.release); + dirpath = std::string(dirpath_tmp); + +- if (file_exists_and_ownedby(dirpath_tmp, 0)) +- return 0; ++ if (file_exists(dirpath_tmp)) { ++ if (file_exists_and_ownedby(dirpath_tmp, 0)) ++ return 0; ++ else ++ // The path exists, but is owned by a non-root user ++ // Something fishy is going on ++ return -EEXIST; ++ } + + // First time so extract it + return extract_kheaders(dirpath, uname_data); +-- +2.44.0 + diff --git a/SPECS/bcc.spec b/SPECS/bcc.spec new file mode 100644 index 0000000..09c5912 --- /dev/null +++ b/SPECS/bcc.spec @@ -0,0 +1,558 @@ +# We don't want to bring luajit in RHEL +%if 0%{?rhel} > 0 +%bcond_with lua +%else +# luajit is not available for some architectures +%ifarch ppc64 ppc64le s390x riscv64 +%bcond_with lua +%else +%bcond_without lua +%endif +%endif + +%ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64 +%bcond_without libbpf_tools +%else +%bcond_with libbpf_tools +%endif + +%bcond_with llvm_static + +%if %{without llvm_static} +%global with_llvm_shared 1 +%endif + + +Name: bcc +Version: 0.30.0 +Release: 3%{?dist} +Summary: BPF Compiler Collection (BCC) +License: Apache-2.0 +URL: https://github.com/iovisor/bcc +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Patch0: %%{name}-%%{version}-clang-fail-when-the-kheaders-ownership-is-wrong-4928.patch +Patch1: %%{name}-%%{version}-Revert-Fix-bashreadline-4903.patch + +# Arches will be included as upstream support is added and dependencies are +# satisfied in the respective arches +ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl riscv64 + +BuildRequires: bison +BuildRequires: cmake >= 2.8.7 +BuildRequires: flex +BuildRequires: libxml2-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: elfutils-libelf-devel +BuildRequires: elfutils-debuginfod-client-devel +BuildRequires: llvm-devel +BuildRequires: clang-devel +%if %{with llvm_static} +BuildRequires: llvm-static +%endif +BuildRequires: ncurses-devel +%if %{with lua} +BuildRequires: pkgconfig(luajit) +%endif +BuildRequires: libbpf-devel >= 2:0.8.0-1, libbpf-static >= 2:0.8.0-1 + +Requires: libbpf >= 2:0.8.0-1 +Requires: tar +Recommends: kernel-devel + +Recommends: %{name}-tools = %{version}-%{release} + +%description +BCC is a toolkit for creating efficient kernel tracing and manipulation +programs, and includes several useful tools and examples. It makes use of +extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature +that was first added to Linux 3.15. BCC makes BPF programs easier to write, +with kernel instrumentation in C (and includes a C wrapper around LLVM), and +front-ends in Python and lua. It is suited for many tasks, including +performance analysis and network traffic control. + + +%package devel +Summary: Shared library for BPF Compiler Collection (BCC) +Requires: %{name}%{?_isa} = %{version}-%{release} +Suggests: elfutils-debuginfod-client + +%description devel +The %{name}-devel package contains libraries and header files for developing +application that use BPF Compiler Collection (BCC). + + +%package doc +Summary: Examples for BPF Compiler Collection (BCC) +Recommends: python3-%{name} = %{version}-%{release} +Recommends: %{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} = %{version}-%{release} +BuildArch: noarch + +%description -n python3-%{name} +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: bcc = %{version}-%{release} +Requires: python3-%{name} = %{version}-%{release} +Requires: python3-netaddr + +%description tools +Command line tools for BPF Compiler Collection (BCC) + +%if %{with libbpf_tools} +%package -n libbpf-tools +Summary: Command line libbpf tools for BPF Compiler Collection (BCC) +BuildRequires: libbpf-devel >= 2:0.8.0-1, libbpf-static >= 2:0.8.0-1 +BuildRequires: bpftool + +%description -n libbpf-tools +Command line libbpf tools for BPF Compiler Collection (BCC) +%endif + +%prep +%autosetup -p1 + + +%build +%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DREVISION_LAST=%{version} -DREVISION=%{version} -DPYTHON_CMD=python3 \ + -DCMAKE_USE_LIBBPF_PACKAGE:BOOL=TRUE -DENABLE_NO_PIE=OFF \ + %{?with_llvm_shared:-DENABLE_LLVM_SHARED=1} +%cmake_build + +# It was discussed and agreed to package libbpf-tools with +# 'bpf-' prefix (https://github.com/iovisor/bcc/pull/3263) +# Installing libbpf-tools binaries in temp directory and +# renaming them in there and the install code will just +# take them. +%if %{with libbpf_tools} +pushd libbpf-tools; +make BPFTOOL=bpftool LIBBPF_OBJ=%{_libdir}/libbpf.a CFLAGS="%{optflags}" LDFLAGS="%{build_ldflags}" +make DESTDIR=./tmp-install prefix= install +( + cd tmp-install/bin + for file in *; do + mv $file bpf-$file + done + # now fix the broken symlinks + for file in `find . -type l`; do + dest=$(readlink "$file") + ln -s -f bpf-$dest $file + done +) +popd +%endif + +%install +%cmake_install + +# Fix python shebangs +find %{buildroot}%{_datadir}/%{name}/{tools,examples} -type f -exec \ + sed -i -e '1s=^#!/usr/bin/python\([0-9.]\+\)\?$=#!%{__python3}=' \ + -e '1s=^#!/usr/bin/env python\([0-9.]\+\)\?$=#!%{__python3}=' \ + -e '1s=^#!/usr/bin/env bcc-lua$=#!/usr/bin/bcc-lua=' {} \; + +# Move man pages to the right location +mkdir -p %{buildroot}%{_mandir} +mv %{buildroot}%{_datadir}/%{name}/man/* %{buildroot}%{_mandir}/ +# Avoid conflict with other manpages +# https://bugzilla.redhat.com/show_bug.cgi?id=1517408 +for i in `find %{buildroot}%{_mandir} -name "*.gz"`; do + tname=$(basename $i) + rename $tname %{name}-$tname $i +done +mkdir -p %{buildroot}%{_docdir}/%{name} +mv %{buildroot}%{_datadir}/%{name}/examples %{buildroot}%{_docdir}/%{name}/ + +# Delete old tools we don't want to ship +rm -rf %{buildroot}%{_datadir}/%{name}/tools/old/ + +# We cannot run the test suit since it requires root and it makes changes to +# the machine (e.g, IP address) +# %%check + +%if %{with libbpf_tools} +mkdir -p %{buildroot}/%{_sbindir} +# We cannot use `install` because some of the tools are symlinks and `install` +# follows those. Since all the tools already have the correct permissions set, +# we just need to copy them to the right place while preserving those +cp -a libbpf-tools/tmp-install/bin/* %{buildroot}/%{_sbindir}/ +%endif + +%ldconfig_scriptlets + +%files +%doc README.md +%license LICENSE.txt +%{_libdir}/lib%{name}.so.* +%{_libdir}/libbcc_bpf.so.* + +%files devel +%exclude %{_libdir}/lib%{name}*.a +%exclude %{_libdir}/lib%{name}*.la +%{_libdir}/lib%{name}.so +%{_libdir}/libbcc_bpf.so +%{_libdir}/pkgconfig/lib%{name}.pc +%{_includedir}/%{name}/ + +%files -n python3-%{name} +%{python3_sitelib}/%{name}* + +%files doc +%dir %{_docdir}/%{name} +%doc %{_docdir}/%{name}/examples/ + +%files tools +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/tools/ +%{_datadir}/%{name}/introspection/ +%if 0%{?rhel} > 0 +# inject relies on BPF_KPROBE_OVERRIDE which is not set on RHEL +%exclude %{_datadir}/%{name}/tools/inject +%exclude %{_datadir}/%{name}/tools/doc/inject_example.txt +%exclude %{_mandir}/man8/bcc-inject.8.gz +# btrfs f2fs and zfs are not available on RHEL +%exclude %{_datadir}/%{name}/tools/btrfs* +%exclude %{_datadir}/%{name}/tools/doc/btrfs* +%exclude %{_mandir}/man8/bcc-btrfs* +%exclude %{_datadir}/%{name}/tools/zfs* +%exclude %{_datadir}/%{name}/tools/doc/zfs* +%exclude %{_mandir}/man8/bcc-zfs* +%exclude %{_datadir}/%{name}/tools/f2fs* +%exclude %{_datadir}/%{name}/tools/doc/f2fs* +%exclude %{_mandir}/man8/bcc-f2fs* +%endif +%{_mandir}/man8/* + +%if %{with lua} +%files lua +%{_bindir}/bcc-lua +%endif + +%if %{with libbpf_tools} +%files -n libbpf-tools +%ifarch s390x +%exclude %{_sbindir}/bpf-numamove +%endif +# RHEL doesn't provide btrfs or f2fs +%exclude %{_sbindir}/bpf-btrfs* +%exclude %{_sbindir}/bpf-f2fs* +%{_sbindir}/bpf-* +%endif + +%changelog +* Fri Oct 25 2024 MSVSphere Packaging Team - 0.30.0-3 +- Rebuilt for MSVSphere 10 + +* Fri Oct 04 2024 Jerome Marchand - 0.30.0-3 +- Remove python3-pyelftools dependency (RHEL-60064) + +* Mon Jun 24 2024 Troy Dawson - 0.30.0-2 +- Bump release for June 2024 mass rebuild + +* Thu Jun 13 2024 Jerome Marchand - 0.30.1-1 +- Rebase to the latest version (RHEL-32379) +- Really prevent the loading of compromised headers (CVE-2024-2314) +- Add python3-pyelftools dependency +- Exclude unsupported tools + +* Tue Feb 13 2024 Jerome Marchand - 0.29.1-2 +- Don't use -no-pie flags. + +* Mon Feb 05 2024 Jerome Marchand - 0.29.1-1 +- Rebase to the latest release version (#2253688) +- Enable libbpf-tools on s390x (#2249458) +- Misc 0.29.1 fixes + +* Tue Jan 23 2024 Fedora Release Engineering - 0.28.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 0.28.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Aug 10 2023 Jerome Marchand - 0.28.0-1 +- Rebase to the latest release version (#2218440) +- Fix bio tools (#2184370) +- Fix slabratetop + +* Wed Jul 19 2023 Fedora Release Engineering - 0.27.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 0.27.0-3 +- Rebuilt for Python 3.12 + +* Tue Jun 06 2023 Jerome Marchand - 0.27.0-2 +- migrated to SPDX license + +* Fri Apr 21 2023 Jerome Marchand - 0.27.0-1 +- Rebase to the latest release version (#2117708) + +* Mon Apr 03 2023 Jerome Marchand - 0.26.0-2 +- Remove the dependency on distutils (RHBZ#2155029) +- Fix macro-in-comment (fedpkg lint warning) +- Fix bogus changelog date (use commit date) + +* Fri Mar 10 2023 Jerome Marchand - 0.26.0-1 +- Rebase to the latest release version + +* Wed Jan 18 2023 Fedora Release Engineering - 0.25.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 0.24.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 0.24.0-2 +- Rebuilt for Python 3.11 + +* Tue Apr 19 2022 Jerome Marchand - 0.24.0-1 +- Rebase to the latest release version +- Fix cmake build +- Add explicit Requires: bcc for bcc-tools +- Remove deprecated python_provide macro + +* Wed Jan 19 2022 Fedora Release Engineering - 0.22.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Oct 24 2021 Rafael dos Santos - 0.22.0-2 +- Rebuilt for LLVM 13 + +* Thu Sep 16 2021 Rafael dos Santos - 0.22.0-1 +- Rebase to latest release version + +* Mon Aug 02 2021 Rafael dos Santos - 0.21.0-1 +- Rebase to latest release version +- Add support to libdebuginfod + +* Wed Jul 21 2021 Fedora Release Engineering - 0.20.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.20.0-4 +- Rebuilt for Python 3.10 + +* Wed Jun 02 2021 Rafael dos Santos - 0.20.0-3 +- Don't require bcc-tools by default (#1966953) + +* Tue May 18 2021 Jerome Marchand - 0.20.0-2 +- Build bcc from standard sources + +* Mon May 17 2021 Rafael dos Santos - 0.20.0-1 +- Rebase to latest upstream (#1957727) + +* Tue May 11 2021 Jeff Law - 0.19.0-6 +- Re-enable LTO + +* Tue May 04 2021 Jiri Olsa - 0.19.0-5 +- Keeping kernel-devel as weak dependency, resolves #1955154 + +* Fri Apr 30 2021 Jiri Olsa - 0.19.0-4 +- Removing kernel-devel dependency, resolves #1955154 + +* Tue Apr 27 2021 Rafael dos Santos - 0.19.0-3 +- Resolves #1869006 + +* Mon Mar 22 2021 Jiri Olsa - 0.19.0-2 +- add libbpf-tools package + +* Mon Mar 22 2021 Jiri Olsa - 0.19.0-1 +- Rebase to latest upstream + +* Thu Feb 18 2021 Jerome Marchand - 0.18.0-4 +- Disable lua for RHEL + +* Tue Jan 26 2021 Fedora Release Engineering - 0.18.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Tom Stellard - 0.18.0-2 +- Rebuild for clang-11.1.0 + +* Tue Jan 5 15:08:26 CET 2021 Rafael dos Santos - 0.18.0-1 +- Rebase to latest upstream (#1912875) + +* Fri Oct 30 11:25:46 CET 2020 Rafael dos Santos - 0.17.0-1 +- Rebase to latest upstream (#1871417) + +* Mon Oct 12 2020 Jerome Marchand - 0.16.0.3 +- Rebuild for LLVM 11.0.0-rc6 + +* Fri Aug 28 2020 Rafael dos Santos - 0.16.0-2 +- Enable build for armv7hl + +* Sun Aug 23 2020 Rafael dos Santos - 0.16.0-1 +- Rebase to latest upstream (#1871417) + +* Tue Aug 04 2020 Rafael dos Santos - 0.15.0-6 +- Fix build with cmake (#1863243) + +* Sat Aug 01 2020 Fedora Release Engineering - 0.15.0-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 0.15.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 09 2020 Tom Stellard - 0.15.0-3 +- Drop llvm-static dependency +- https://docs.fedoraproject.org/en-US/packaging-guidelines/#_statically_linking_executables + +* Thu Jul 02 2020 Rafael dos Santos - 0.15.0-2 +- Reinstate a function needed by bpftrace + +* Tue Jun 23 2020 Rafael dos Santos - 0.15.0-1 +- Rebase to latest upstream version (#1849239) + +* Tue May 26 2020 Miro Hrončok - 0.14.0-2 +- Rebuilt for Python 3.9 + +* Tue Apr 21 2020 Rafael dos Santos - 0.14.0-1 +- Rebase to latest upstream version (#1826281) + +* Wed Feb 26 2020 Rafael dos Santos - 0.13.0-1 +- Rebase to latest upstream version (#1805072) + +* Tue Jan 28 2020 Fedora Release Engineering - 0.12.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Jan 06 2020 Tom Stellard - 0.12.0-2 +- Link against libclang-cpp.so +- https://fedoraproject.org/wiki/Changes/Stop-Shipping-Individual-Component-Libraries-In-clang-lib-Package + +* Tue Dec 17 2019 Rafael dos Santos - 0.12.0-1 +- Rebase to latest upstream version (#1758417) + +* Thu Dec 05 2019 Jiri Olsa - 0.11.0-2 +- Add libbpf support + +* Fri Oct 04 2019 Rafael dos Santos - 0.11.0-1 +- Rebase to latest upstream version (#1758417) + +* Thu Oct 03 2019 Miro Hrončok - 0.10.0-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 0.10.0-3 +- Rebuilt for Python 3.8 + +* Wed Jul 24 2019 Fedora Release Engineering - 0.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed May 29 2019 Rafael dos Santos - 0.10.0-1 +- Rebase to latest upstream version (#1714902) + +* Thu Apr 25 2019 Rafael dos Santos - 0.9.0-1 +- Rebase to latest upstream version (#1686626) +- Rename libbpf header to libbcc_bpf + +* Mon Apr 22 2019 Neal Gompa - 0.8.0-5 +- Make the Python 3 bindings package noarch +- Small cleanups to the spec + +* Tue Mar 19 2019 Rafael dos Santos - 0.8.0-4 +- Add s390x support (#1679310) + +* Wed Feb 20 2019 Rafael dos Santos - 0.8.0-3 +- Add aarch64 support (#1679310) + +* Thu Jan 31 2019 Fedora Release Engineering - 0.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 17 2019 Rafael dos Santos - 0.8.0-1 +- Rebase to new released version + +* Thu Nov 01 2018 Rafael dos Santos - 0.7.0-4 +- Fix attaching to usdt probes (#1634684) + +* Mon Oct 22 2018 Rafael dos Santos - 0.7.0-3 +- Fix encoding of non-utf8 characters (#1516678) +- Fix str-bytes conversion in killsnoop (#1637515) + +* Sat Oct 06 2018 Rafael dos Santos - 0.7.0-2 +- Fix str/bytes conversion in uflow (#1636293) + +* Tue Sep 25 2018 Rafael Fonseca - 0.7.0-1 +- Rebase to new released version + +* Wed Aug 22 2018 Rafael Fonseca - 0.6.1-2 +- Fix typo when mangling shebangs. + +* Thu Aug 16 2018 Rafael Fonseca - 0.6.1-1 +- Rebase to new released version (#1609485) + +* Thu Jul 12 2018 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 0.6.0-2 +- Rebuilt for Python 3.7 + +* Mon Jun 18 2018 Rafael dos Santos - 0.6.0-1 +- Rebase to new released version (#1591989) + +* Thu Apr 05 2018 Rafael Santos - 0.5.0-4 +- Resolves #1555627 - fix compilation error with latest llvm/clang + +* Wed Feb 07 2018 Fedora Release Engineering - 0.5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Feb 02 2018 Igor Gnatenko - 0.5.0-2 +- Switch to %%ldconfig_scriptlets + +* Wed Jan 03 2018 Rafael Santos - 0.5.0-1 +- Rebase to new released version + +* Thu Nov 16 2017 Rafael Santos - 0.4.0-4 +- Resolves #1517408 - avoid conflict with other manpages + +* Thu Nov 02 2017 Rafael Santos - 0.4.0-3 +- Use weak deps to not require lua subpkg on ppc64(le) + +* Wed Nov 01 2017 Igor Gnatenko - 0.4.0-2 +- Rebuild for LLVM5 + +* Wed Nov 01 2017 Rafael Fonseca - 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 - 0.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Mar 30 2017 Igor Gnatenko - 0.3.0-2 +- Rebuild for LLVM4 +- Trivial fixes in spec + +* Fri Mar 10 2017 Rafael Fonseca - 0.3.0-1 +- Rebase to new release. + +* Fri Feb 10 2017 Fedora Release Engineering - 0.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 10 2017 Rafael Fonseca - 0.2.0-2 +- Fix typo + +* Tue Nov 29 2016 Rafael Fonseca - 0.2.0-1 +- Initial import