libbpf/libbpf.spec
Michał Rostecki 9146349710 Accepting request 921765 from home:shunghsiyu:branches:devel:libraries:c_c++
- Update to 0.5.0:
  + New features and user-space APIs:
    - libbpf_set_strict_mode() allowing to opt-in into backwards incompatible libbpf-1.0 changes. See "Libbpf: the road to 1.0" and "Libbpf 1.0 migration guide" for more details.
    - streamlined error reporting for low-level APIs, high-level error-returning APIs, and pointer-returning APIs (as a libbpf-1.0 opt-in);
    - "Light" BPF skeleton support;
    - BPF_PROG_TYPE_SYSCALL support;
    - BPF perf link support for kprobe, uprobe, tracepoint, and perf_event BPF programs;
    - BPF cookie support for kprobe, uprobe, tracepoint, and perf_event BPF programs through bpf_program__attach_[ku]probe_opts() APIs;
    - allow to specify ref_ctr_off for USDT semaphores through bpf_program__attach_uprobe_opts() API;
    - btf_custom_path support in bpf_object_open_opts, allowing to specify custom BTF for CO-RE relocations;
    - sk_reuseport/migrate program type support;
    - btf_dump__dump_type_data() API, allowing to dump binary data according to BTF type description;
    - btf__load_into_kernel() and btf__load_from_kernel_by_id(), and split BTF variants of them;
    - btf__load_vmlinux_btf() and btf__load_module_btf() APIs;
    - bpf_map__initial_value() API to get initial value of mmap-ed BPF maps;
    - bpf_map_lookup_and_delete_elem_flags() API.
  + BPF-side APIs and features:
    - support for weak typed __ksym externs;
    - BPF timer helpers: bpf_timer_init(), bpf_timer_set_callback(), bpf_timer_start(), bpf_timer_cancel();
    - bpf_get_attach_cookie() helper to get BPF cookie from BPF program side;
    - bpf_get_func_ip() helper;
    - bpf_sys_bpf() helper;
    - bpf_task_pt_regs() helper;
    - bpf_btf_find_by_name_kind() helper;
    - usability improvements for bpf_tracing.h when target architecture is missing.
  + Bug fixes and compatibility improvements:
    - improve BPF support detection on old Red Hat kernels with backported BPF patches;
    - improvements for LTO builds with GCC 10+;
    - pass NLM_F_EXCL when creating TC qdisc;
    - better support of BPF map reuse on old kernels;
    - fix the bug resulting in sometimes closing FD 0, which wasn't created and owned by libbpf itself.
- Remove patches merged upstream
  + libdir.patch
  + libbpf-Fix-build-with-latest-gcc-binutils-with-LTO.patch

OBS-URL: https://build.opensuse.org/request/show/921765
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libbpf?expand=0&rev=11
2021-09-27 13:57:21 +00:00

77 lines
2.1 KiB
RPMSpec

#
# spec file for package libbpf
#
# Copyright (c) 2021 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/
#
%define sover_major 0
%define libname libbpf%{sover_major}
Name: libbpf
Version: 0.5.0
Release: 0
Summary: C library for managing eBPF programs and maps
License: LGPL-2.1-only
URL: https://github.com/libbpf/libbpf
Source: https://github.com/libbpf/libbpf/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source99: baselibs.conf
BuildRequires: libelf-devel
BuildRequires: linux-glibc-devel >= 4.5
BuildRequires: python3
BuildRequires: zlib-devel
%description
libbpf is a C library which provides API for managing eBPF programs and maps.
%package -n %{libname}
Summary: C library for managing eBPF programs and maps
%description -n %{libname}
libbpf is a C library which provides API for managing eBPF programs and maps.
%package devel
Summary: Development files for libbpf
Requires: %{libname} = %{version}
%description devel
libbpf is a C library which provides API for managing eBPF programs and maps.
%prep
%setup -q
%autopatch -p1
%build
cd src
%make_build V=1 CFLAGS="%{optflags}"
%install
cd src
%make_install V=1
rm -f %{buildroot}%{_libdir}/%{name}.a
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%files -n %{libname}
%{_libdir}/%{name}.so.%{sover_major}*
%files devel
%license LICENSE LICENSE.BSD-2-Clause LICENSE.LGPL-2.1
%doc README.md
%{_includedir}/bpf
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog