#
# spec file for package libbpf
#
# Copyright (c) 2025 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 1
%define libname libbpf%{sover_major}
Name:           libbpf
Version:        1.5.0
Release:        2.2
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:  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.

%package devel-static
Summary:        Static library for libbpf
Requires:       %{libname} = %{version}
Requires:       %{name}-devel = %{version}

%description devel-static
libbpf is a C library which provides API for managing eBPF programs and maps.

%prep
%autosetup -p1

%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
cd src
%make_build V=1 CFLAGS="%{optflags}"

%install
cd src
%make_install V=1

%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

%files devel-static
%{_libdir}/%{name}.a

%changelog
* Wed Dec 18 2024 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- Drop libbpf-Fix-NULL-pointer-dereference-in-bpf_object__c.patch
  * included since 1.4.0
* Wed Oct 30 2024 Fredrik Lönnegren <fredrik.lonnegren@suse.com>
- update to 1.5.0:
  * libbpf can now open (but not load!) BPF objects of non-native endianness,
    enabling cross-architecture support for BPF skeleton generation and BPF
    object introspection
  * BPF skeleton will now auto-attach SEC(".struct_ops") maps as part of
    <skeleton>__attach() call
  * BPF kprobe session programs support (SEC("kprobe.session"))
  * allow specifying kernel module name for fentry/fexit BPF programs
    (SEC(fentry/module:function)
  * libbpf recognizes LIBBPF_LOG_LEVEL environment variable, which can be used
    to set default log verboseness
  * BPF ringbuf APIs that limit maximum number of consumed records at a time
    (ring_buffer__consume_n(), ring__consume_n())
  * distilled BTF support (btf__distill_base(), btf__relocate())
  * BPF link-based attachment of BPF_PROG_TYPE_SOCKMAP programs
    (bpf_program__attach_sockmap())
  * bpf_object__token_fd() API to fetch BPF token FD of a BPF object, if any
  * fixes for fetching syscall arguments on arm64, s390x, risc-v architectures
  * better GCC-BPF source code compatibility
  * __bpf_fastcall support for a few BPF helpers
  * __uptr annotation definition added to bpf/bpf_helpers.h API header
  * fixes and improvements around handling missing and nulled out struct_ops
    programs
  * fixed mmap()-ing logic for global data, fixing interop between generic
    bpf_object__open() APIs and BPF subskeletons
  * BPF skeleton backwards compatibility handling fixes
  * handle LTO-produced *.llvm.<hash> symbols better
  * feature detection fixes in the presence of BPF token inside user namespace
  * older kernels have broken PID filtering logic for multi-uprobes, libbpf now
    detects this and avoids the use of multi-uprobes for USDTs
  * fix accidental drop of FD_CLOEXEC flag during BPF map reuse
  * few BTF dumper formatting fixes
  * a few more small fixes all around.
* Wed Oct 30 2024 Fredrik Lönnegren <fredrik.lonnegren@suse.com>
- update to 1.4.7:
  * fix interop issues between generic bpf_object__open() APIs and BPF
    subskeleton w.r.t. global data handling
  * speed up BTF sanity checks by skipping already validated base BTF
  * fix legacy treatment of non-SEC()-annotated subprogram as entry BPF program
    in some cases
* Wed Sep  4 2024 Fredrik Lönnegren <fredrik.lonnegren@suse.com>
- update to 1.4.6:
  * BPF skeleton forward compatibility fix (f6f2402);
  * BTF endianness inheritance bug fix (fe28fae).
* Thu Jul 18 2024 Dirk Müller <dmueller@suse.com>
- update to 1.4.5:
  * Another small bug fix release backporting https://github.com/
    libbpf/libbpf/commit/d9f9fd5b22223ae69c62e083da6093d95a0db799
    which works around kernel-side bug with USDT PID filtering on
    kernels that support multi-uprobe (but have broken PID
    filtering).
* Tue Jun  4 2024 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- update to 1.4.3:
  * Fix libbpf unintentionally dropping FD_CLOEXEC flag when (internally)
    duping FDs
* Tue May 21 2024 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- Fix null pointer dereference in bpf_object__collect_prog_relos()
  (bsc#1221101)
  * Add libbpf-Fix-NULL-pointer-dereference-in-bpf_object__c.patch
* Sat May 11 2024 Fredrik Lönnegren <fredrik.lonnegren@suse.com>
- update to 1.4.2:
  * Another struct_ops-focused bug fix release. It addresses a few more corner
    cases when dealing with SEC("struct_ops") programs.
  * It also improves error messaging around common use case of declaring
    struct_ops BPF program and not referencing it from SEC(".struct_ops")
    variable (backed by struct_ops BPF map).
  * This release should improve overall experience of using BPF struct_ops
    functionality.
* Thu May  2 2024 Fredrik Lönnegren <fredrik.lonnegren@suse.com>
- update to 1.4.1:
  * Bug fix release fixing logic around determining whether to autoload
    SEC("struct_ops") programs in cases when old kernel doesn't support some
    optional callbacks and user reset them to NULL from BPF skeleton.
* Wed Apr  3 2024 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- update to 1.4.0:
  * support for BPF token throughout low-level and high-level APIs
    (see also LIBBPF_BPF_TOKEN_PATH envvar)
  * struct_ops functionality around handling multi-kernel
    compatibility using BPF CO-RE principles and approaches
  * BPF arena map support
  * support __arena tagged global variables, which are automatically
    put into BPF arena map
  * BPF cookie support for raw tracepoint BPF programs in attach APIs
    loaded or created, respectively
  * add SEC("sk_skb/verdict") support
  * support global subprog argument tagging for for kprobe/uprobe,
    and perf_event BPF program with newly added __arg_ctx,
    __arg_nonnull, __arg_nullable, __arg_trusted, and __arg_arena
    annotations
  * add bpf_core_cast() macro, improving ergonomics of
    bpf_rdonly_cast() BPF helper
  * __long() macro added for specifying 64-bit values when declaring
    BTF-defined maps
  * better GCC-BPF support in BPF CO-RE macros in bpf_core_read.h header
  * show specific error messages when attempting to
    use struct bpf_program/bpf_map instances there were not loaded or
    created
  * fix inner map's max_entries setting logic
  * btf_ext__raw_data() and btf__new_split() APIs are added back
  * ignore DWARF sections in BPF linker sanity checks, improving
    handling of some corner cases
  * fix potential NULL dereference when handling corrupted ELF files.
* Sat Nov 25 2023 Dirk Müller <dmueller@suse.com>
- update to 1.3.0:
  * support for `netfilter` programs is added
    `SEC("netfilter")` is now available
  * API function `bpf_program__attach_netfilter()` is now
    available
  * support for `tcx` BPF programs is added:
  * the following new SEC definitions are now available:
    SEC("tc/egress"), SEC("tc/ingress"), SEC("tcx/egress"),
    SEC("tcx/ingress")
  * the following SEC definitions are now considered legacy:
    SEC("tc"), SEC("action"), SEC("classifier")
  * functions `bpf_prog_attach_opts()` and
    `bpf_prog_query_opts()` are extended to work with `tcx`
    programs, plus two new API functions are added:
  * the following new SEC definitions are now available:
    SEC("uprobe.multi"), SEC("uprobe.multi.s"),
    SEC("uretprobe.multi"), SEC("uretprobe.multi.s")
  * support for section `SEC("usdt.s")` is added for sleepable
    `usdt` programs;
  * support for Unix domain socket cgroup BPF programs is added
    the following new SEC definitions are now available:
    SEC("cgroup/connect_unix"),SEC("cgroup/sendmsg_unix"),
    SEC("cgroup/recvmsg_unix"), SEC("cgroup/getpeername_unix"),
    SEC("cgroup/getsockname_unix")
  * new `LIBBPF_OPTS_RESET()` utility macro;
  * new `bpf_object__unpin()` function to complement existing
    `bpf_object__pin()`;
  * new API functions for work with ring buffers
  * uprobe SEC matcher extended to allow golang symbols;
  * uprobe support for symbols versioning;
  * `bpf_map__set_value_size()` can now be used to resize memory
    mapped region for memory mapped maps;
  * `struct bpf_xdp_query_opts` extended with `xdp_zc_max_segs`
    output field;
  * basic BTF sanity check pass added to reject bogus BTF.
  * fix for btf_dump__dump_type_data() when type contains
    bitfields;
  * fix for correct work of offsetof() and container_of() macro
    with CO-RE;
  * no longer attempt to load modules BTF when resolving CO-RE
    relocations if CAP_SYS_ADMIN are absent;
  * regex based function search for "kprobe.multi/" programs no
    longer attempts to trace functions that cannot be traced;
  * bpf_program__set_type() no longer resets sec_def if it is set
    to a custom fallback SEC handler;
  * fix for memory leak possible after
    bpf_program__set_attach_target() call;
* Fri Jul 14 2023 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- update to v1.2.2:
  * fix a regression in perf tool caused by libbpf resetting its custom
    catch-all SEC() handler on explicit bpf_program__set_type() call
  * fix possible double-free in USDT-related libbpf code, which happens when
    libbpf runs out of space in __bpf_usdt_specs map due to having too many
    unique USDT specs
* Tue May  2 2023 Dirk Müller <dmueller@suse.com>
- update to 1.2.0:
  * completely overhauled "Libbpf overview" landing documentation
    page;
  * support for BPF link-based `struct_ops` programs:
  * `SEC(".struct_ops.link")` annotations;
  * `bpf_map__attach_struct_ops()` attach API;
  * `bpf_link__update_map()` link update API;
  * support sleepable `SEC("struct_ops.s")` programs
  * improved thread-safety of libbpf print callbacks and
    `libbpf_set_print()`
  * improve handling and reporting of missing BPF kfuncs
  * `bpf_{btf,link,map,prog}_get_info_by_fd()` APIs
  * `bpf_xdp_query_opts()` supports fetching XDP/XSK supported
    features;
  * `perf_buffer__new()` allows customizing notification/sampling
    period now;
  * BPF verifier logging improvements:
  * pass-through BPF verifier log level and flags to kernel as
    is
  * support `log_true_size` for getting required log buffer size
    to fit BPF verifier log completely;
  * allow precise control over kprobe/uprobe attach mode: legacy,
    perf-based, link-based.
  * fix legacy kprobe events names sanitization;
  * fix clobbering errno in some cases;
  * fix BPF map's `BPF_F_MMAPABLE` flag sanitization;
  * fix BPF-side USDT support code on s390x architecture;
  * fix `BPF_PROBE_READ{_STR}_INTO()` on s390x architecture;
  * fix kernel version setting for Debian kernels;
  * fix netlink protocol handling in some cases;
  * improve robustness of attaching to legacy kprobes and
    uprobes;
  * fix double-free during static linking empty ELF sections;
  * a bunch of other small fixes here and there.
* Thu Jan  5 2023 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- Remove requirement of linux-glibc-devel >= 5.16 for devel package
* Thu Dec 22 2022 Dirk Müller <dmueller@suse.com>
- update to v1.1.0:
  User space-side features and APIs:
  * user-space ring buffer (BPF_MAP_TYPE_USER_RINGBUF) support;
  * new documentation page listing all recognized SEC() definitions;
  * BTF dedup improvements:
  * unambiguous fwd declaration resolution for structs and unions;
  * better handling of some corner cases with identical structs and arrays;
  * mixed enum and enum64 forward declaration resolution logic;
  * bpf_{link,btf,pro,mapg}_get_fd_by_id_opts() and bpf_get_fd_by_id_opts()
    APIs;
  * libbpf supports loading raw BTF for BPF CO-RE from known search paths;
  * support for new cgroup local storage (BPF_MAP_TYPE_CGRP_STORAGE);
  * libbpf will only add BPF_F_MMAPABLE flag for data maps with global
    (i.e., non-static) vars;
  * latest Linux UAPI headers with lots of changes synced into
    include/uapi/linux.
  BPF-side features and APIs;
  * BPF_PROG2() macro added that supports struct-by-value arguments;
  * new BPF helpers:
  * bpf_user_ringbuf_drain();
  * cgrp_storage_get() and cgrp_storage_delete().
  Bug fixes
  * better handling of padding corner cases;
  * btf__align_of() determines packed structs better now;
  * improved handling of enums of non-standard sizes;
  * USDT spec parsing improvements;
  * overflow handling fixes for ringbufs;
  * Makefile fixes to support cross-compilation for 32-bit targets;
  * fix crash if SEC("freplace") programs don't have attach_prog_fd set;
  * better handling of file existence checks when running as non-root with
    enhanced capabilities;
  * a bunch of small fixes:
  * ELF handling improvements;
  * fix memory leak in USDT argument parsing logic;
  * fix NULL dereferences in few corner cases;
  * improved netlink attribute iteration handling.
- drop libbpf-Use-elf_getshdrnum-instead-of-e_shnum.patch,
  libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch,
  libbpf-Fix-memory-leak-in-parse_usdt_arg.patch
  libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch (upstream)
* Tue Nov  8 2022 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- Fix out-of-bound heap write (boo#1194248 boo#1194249 CVE-2021-45940 CVE-2021-45941)
  + libbpf-Use-elf_getshdrnum-instead-of-e_shnum.patch
- Fix use-after-free in btf_dump_name_dups (boo#1204391 CVE-2022-3534)
  + libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch
- Fix memory leak in parse_usdt_arg() (boo#1204393 CVE-2022-3533)
  + libbpf-Fix-memory-leak-in-parse_usdt_arg.patch
- Fix null pointer dereference in find_prog_by_sec_insn() (boo#1204502 CVE-2022-3606)
  + libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch
* Tue Oct  4 2022 Dirk Müller <dmueller@suse.com>
- update to 1.0.1:
  * fix inadvertently changed struct bpf_object_open_opts memory layout;
  * fix btf.h header relying on struct enum64 type defined in kernel UAPI headers;
  * fix NULL pointer exception in API btf_dump__dump_type_data;
  * remove struct btf_map_def accidentally left in bpf_helpers.h header.
  * All deprecated APIs and features removed!
  * support for syscall-specific kprobe/kretprobe
    (SEC("ksyscall/<syscall_name>") and SEC("kretsyscall/<syscall_name>"));
  * support for sleepable uprobe BPF programs (SEC("uprobe.s"));
  * support for per-cgroup LSM BPF programs (SEC("lsm_cgroup"));
  * support for new BPF CO-RE relocation TYPE_MATCHES;
  * bpf_prog_load() and bpf_map_create() are now smarter about handling program
    and map name on old kernels (it will be ignored if kernel doesn't support
    names);
  * BTF_KIND_ENUM64 support;
  * increase tracing attachment (kprobe/uprobe/tracepoint) robustness by using
    tracefs or debugfs, whichever is mounted;
  * new APIs for converting BPF enums to their string representation:
  * libbpf_bpf_prog_type_str();
  * libbpf_bpf_map_type_str();
  * libbpf_bpf_link_type_str();
  * libbpf_bpf_attach_type_str();
  * bpf_program__set_autoattach() and bpf_program__autoattach() to allow opting
    out from auto-attaching of BPF program by BPF skeleton;
  * perf_buffer__buffer() API to give access to underlying per-CPU buffer for BPF ringbuf;
  * bpf_obj_get_opts() API for more flexible fetching of BPF kernel objects' information.
- see https://github.com/libbpf/libbpf/releases/tag/v1.0.0 for detailed changelog
* Wed Aug  3 2022 Callum Farmer <gmbr3@opensuse.org>
- Update to release 0.8.1:
  * make shared xsk creation network namespace aware
* Thu May 19 2022 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- Update to release 0.8.0
  * New features and APIs:
  - support auto-resolution of binaries and shared libraries from PATH, if necessary;
  - support attaching by function names (only by IP was supported before);
  - support attaching to USDTs (SEC("usdt/...") and
    bpf_program__attach_usdt()) with initially supported architectures:
    x86-64 (amd64); x86 (i386); s390x; ARM64 (aarch64); RISC V (riscv);
  - improved BPF verifier log reporting for CO-RE relocation failures (no
    more obscure "invalid func unknown#195896080" errors);
  - auto-adjust BPF ringbuf size according to host kernel's page size requirements;
  - high-level BPF map APIs: bpf_map__lookup_elem(), bpf_map__update_elem(),
    etc that validate key/value buffer sizes;
  - bpf_link_create() can create all bpf_link-based (including raw_tp,
    fentry/fexit, etc), falling back to bpf_raw_tracepoint_open() on old
    kernels transparently;
  - support opting out from auto-loading BPF programs declaratively with
    SEC("?...");
  - support opting out from auto-creation of declarative BPF maps with
    bpf_map__set_autocreate();
  - support multi-kprobes (SEC("kprobe.multi/...") and
    bpf_program__attach_kprobe_multi_opts());
  - support target-less SEC() programs (e.g., SEC("kprobe"), SEC("tp"), etc);
  - support BPF sub-skeletons for "incomplete" BPF object files (requires
    matching bpftool to generate .subskel.h);
  - BPF cookie support for fentry/fexit/fmod_ret BPF programs
    (bpf_program__attach_trace_opts());
  - support for custom SEC() handlers (libbpf_register_prog_handler()).
  * BPF-side API
  - BPF-side USDT APIs. See new usdt.bpf.h header:
  * BPF_USDT() program wrapper macro; bpf_usdt_arg(), bpf_usdt_arg_cnt(),
  * bpf_usdt_cookie() helpers;
  - new bpf_core_field_offset() CO-RE helper and support
    bpf_core_field_size(type, field) forms;
  - barrier() and barrier_var() macros for improving BPF code generation;
  - __kptr and __kptr_ref tags added;
  - ARC architecture support in bpf_tracing.h header;
  - new BPF helpers:
  * bpf_skb_set_tstamp();
  * bpf_ima_file_hash();
  * bpf_kptr_xchg();
  * bpf_map_lookup_percpu_elem().
  * Bug fixes
  - netlink bug fixes;
  - libbpf.pc fixes to support patch releases properly;
  - BPF_MAP_TYPE_PERF_EVENT_ARRAY map auto-pinning fix;
  - minor CO-RE fixes and improvements for some corner cases;
  - various other small fixes and improvements.
* Thu Mar 10 2022 Jeff Mahoney <jeffm@suse.com>
- Enable building and packaging of static library.
  Explicitly enable fat LTO objects.
* Mon Mar  7 2022 Jan Engelhardt <jengelh@inai.de>
- Python is not used during build; remove it and help break
  a cycle.
* Fri Mar  4 2022 Jan Engelhardt <jengelh@inai.de>
- Update to release 0.7.0
  * legacy BPF map definitions (using struct bpf_map_def) are
    deprecated when LIBBPF_STRICT_MAP_DEFINITIONS is passed to
    libbpf_set_strict_mode(). Please use BTF-defined map
    definitions.
  * ability to control and capture BPF verifier log output on
    per-object and per-program level
  * CO-RE support and other improvements for "light skeleton"
  * improved compilation when system BTF UAPI headers are outdated
* Sat Dec 11 2021 Jan Engelhardt <jengelh@inai.de>
- Update to release 0.6.1
  * Introduce legacy kprobe events support
  * Add legacy uprobe attaching support
  * Support uniform BTF-defined key/value specification across
    all BPF maps
  * Support kernel module function calls
  * Support detecting and attaching of writable tracepoint
    program
  * Add bloom filter map implementation
  * Add typeless and weak ksym support to gen_loader
  * Add RISC-V (RV64) support to bpf_tracing.h
  * Deprecate AF_XDP support
  * Support BTF_KIND_TYPE_TAG
* Mon Sep 27 2021 Shung-Hsi Yu <shung-hsi.yu@suse.com>
- 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
* Fri Aug 27 2021 Michal Suchanek <msuchanek@suse.com>
- Fix LTO build (bsc#1188749).
  + libbpf-Fix-build-with-latest-gcc-binutils-with-LTO.patch
* Fri Aug 20 2021 Michal Suchanek <msuchanek@suse.com>
- Depend on new enough Linux headers.
* Mon Aug  2 2021 Callum Farmer <gmbr3@opensuse.org>
- Create libbpf0-32bit needed by libdwarves1-32bit
* Sat Jul 17 2021 Michal Suchanek <msuchanek@suse.com>
- libbpf is now a separate project, stop building from the kernel
  (bsc#1188419 jsc#SLE-17288 jsc#SLE-18805).
- Fix LIBSUBDIR
  + libdir.patch
* Mon Jun  8 2020 Michał Rostecki <mrostecki@suse.com>
- Add python3 as a build dependency.
* Sun Feb  2 2020 Michał Rostecki <mrostecki@opensuse.org>
- Build libbpf from kernel sources, not from github sources, for
  consistency with bpftool package.
* Tue Jan  7 2020 Tomáš Chvátal <tchvatal@suse.com>
- Reflect SUSE CFLAGS
- Do not bother with obscpio if we are fetching direct releases
- Remove patch 0001-makefile-Fix-install-target.patch seems
  to build/install without it just fine
- Update to 0.0.6:
  + New features
  - new extensible bpf_object__open_{file,mem} APIs and
    DECLARE_LIBBPF_OPTS() macro to go with them
  - bpf_helpers.h, bpf_endian.h, and bpf_tracing.h are now
    distributed with libbpf
  - BPF CO-RE: added field size, field existence, and bitfield
    relocation support
  - BPF CO-RE: BPF_CORE_READ(), bpf_core_field_exists(),
    bpf_core_field_size() and other BPF CO-RE related helpers
    available through bpf_core_read.h header
  - bpf_object__open() API now auto-detects program type from
    its section name
  - BPF_PROG_TRACING programs support (incuding BTF-typed raw
    tracepoints, fentry/fexit programs)
  - mmap() support for BPF global variables
  - declarative map pinning support added
  - probe_read_{user,kernel}[_str]() BPF helpers added
  - bpf_get_link_xdp_info() function to get more XDP information
    added
  - a bunch of other AF_XDP changes
  + Usability improvements
  - no need for int version SEC('version') = 1; anymore
  - raw_tp/tp and uprobe/uretprobe section prefixes added
  - new bpf_program__get_{type,expected_attach_type} getters
  - preserve error code on program load failure
  + Fixes
  - btf_dump padding handling
  - bpf_object__name() returning name, not path
  - ELF section handling off-by-one bug fix
  - mem leak/double free fix in BPF program relocation code
* Tue Oct  1 2019 Michał Rostecki <mrostecki@opensuse.org>
- Initial release