UBUNTU: [Packaging] add linux-bpf-dev package

BugLink: https://bugs.launchpad.net/bugs/2050083

Add a new binary linux-bpf-dev package that ships a generated vmlinux.h
header. This can be used by packages building CO-RE BPF programs instead
of generating it at build time based on the kernel running on the package
build system, which might or might not match the kernel that is actually
shipped. It ensures that a matching header can always be used.

Matches changes in Debian, including the package name and header installation
location, so that we do not have to ifdef:

https://salsa.debian.org/kernel-team/linux/-/commit/f52d006f3915ac4358dc8c98aa417477ebee026e

This is already used by systemd to build various CO-RE programs, and
right now on Ubuntu due to the lack of this package the header is
generated from sysfs in the build system where the systemd packages are
built.

Signed-off-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Timo Aaltonen <timo.aaltonen@canonical.com>
(cherry-picked from commit 6032cf45d201ec539a8efa493989366bde75fd96 oracular:linux)
Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Agathe Porte <agathe.porte@canonical.com>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
Luca Boccassi
2024-10-18 19:55:59 +01:00
committed by Mehmet Basaran
parent db4045cf4e
commit ec19eb348a
3 changed files with 16 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
Package: linux-bpf-dev
Architecture: amd64 armhf arm64 i386 ppc64el riscv64 s390x
Depends: ${misc:Depends}
Multi-Arch: same
Description: Headers for BPF development
The vmlinux.h header is provided to allow userspace to build BPF CO-RE
programs targeting the packaged kernel.
+1
View File
@@ -175,6 +175,7 @@ ifeq ($(src_pkg_name),linux)
control_files += debian/control.d/linux-tools-host.stub
control_files += debian/control.d/linux-source.stub
control_files += debian/control.d/linux-doc.stub
control_files += debian/control.d/linux-bpf-dev.stub
endif
# Calculate Ubuntu Compatible Signing levels
+8
View File
@@ -618,6 +618,9 @@ endif
ifeq ($(do_cloud_tools),true)
$(call dh_all,$(pkgcloud))
endif
ifeq ($(do_tools_bpftool),true)
$(call if_package, linux-bpf-dev, $(call dh_all,linux-bpf-dev))
endif
#
# per-architecture packages
@@ -670,6 +673,7 @@ endif
ifeq ($(do_tools_bpftool),true)
mv $(builddirpa)/tools/bpf/bpftool/vmlinux $(builddirpa)/vmlinux
$(kmake) CROSS_COMPILE=$(CROSS_COMPILE) -C $(builddirpa)/tools/bpf/bpftool
$(builddirpa)/tools/bpf/bpftool/bpftool btf dump file $(builddirpa)/vmlinux format c > $(builddirpa)/vmlinux.h
rm -f $(builddirpa)/vmlinux
endif
ifeq ($(do_tools_x86),true)
@@ -722,6 +726,10 @@ endif
ifeq ($(do_tools_bpftool),true)
install -m755 $(builddirpa)/tools/bpf/bpftool/bpftool $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
endif
ifeq ($(do_tools_bpftool),true)
install -d -m755 $(CURDIR)/debian/linux-bpf-dev/usr/include/$(DEB_HOST_MULTIARCH)/linux/
install -m644 $(builddirpa)/vmlinux.h $(CURDIR)/debian/linux-bpf-dev/usr/include/$(DEB_HOST_MULTIARCH)/linux/vmlinux.h
endif
ifeq ($(do_tools_x86),true)
install -m755 \
$(addprefix $(builddirpa)/tools/power/x86/, x86_energy_perf_policy/x86_energy_perf_policy turbostat/turbostat) \