Re: libbpf distro packaging
From: Andrii Nakryiko <hidden>
Date: 2019-08-13 18:27:07
On Tue, Aug 13, 2019 at 7:14 AM Daniel Borkmann [off-list ref] wrote:
On 8/13/19 2:24 PM, Jiri Olsa wrote:quoted
On Mon, Aug 12, 2019 at 07:04:12PM +0000, Julia Kartseva wrote:quoted
I would like to bring up libbpf publishing discussion started at [1]. The present state of things is that libbpf is built from kernel tree, e.g. [2] For Debian and [3] for Fedora whereas the better way would be having a package built from github mirror. The advantages of the latter: - Consistent, ABI matching versioning across distros - The mirror has integration tests - No need in kernel tree to build a package - Changes can be merged directly to github w/o waiting them to be merged through bpf-next -> net-next -> main There is a PR introducing a libbpf.spec which can be used as a starting point: [4] Any comments regarding the spec itself can be posted there. In the future it may be used as a source of truth. Please consider switching libbpf packaging to the github mirror instead of the kernel tree. Thanks [1] https://lists.iovisor.org/g/iovisor-dev/message/1521 [2] https://packages.debian.org/sid/libbpf4.19 [3] http://rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/l/libbpf-5.3.0-0.rc2.git0.1.fc31.x86_64.html [4] https://github.com/libbpf/libbpf/pull/64hi, Fedora has libbpf as kernel-tools subpackage, so I think we'd need to create new package and deprecate the current but I like the ABI stability by using github .. how's actually the sync (in both directions) with kernel sources going on?The upstream kernel's tools/lib/bpf/ is always source of truth. Meaning, changes need to make it upstream first and they are later synced into the GH stand-alone repo.
As I mentioned in reply to Jiri, kernel's tools/lib/bpf are the source of truth for the sources of libbpf itself, but Github has some extra stuff necessary to make libbpf work/build in isolation from kernel. Plus some administrative stuff (e.g., sync script). So if this spec is geared towards Github layout and for use with Github projection of libbpf, maybe it makes more sense to keep it in Github only? Is that spec going to be useful in kernel sources? Or will it just create more confusion on why it's there? Plus it will make it easier to synchronize version bumping/tagging of new release on Github.
Thanks, Daniel