dev-util/bpftool: Sync with Gentoo

It's from Gentoo commit dafe1bac5f4ab456f2a67ab173f3ee7bc4d5a16d.
This commit is contained in:
Flatcar Buildbot 2025-01-13 07:06:53 +00:00 committed by Krzesimir Nowak
parent c14bbd1733
commit 467332ba64
9 changed files with 14 additions and 284 deletions

View File

@ -1,11 +1,7 @@
DIST bpftool-7.4.0.tar.gz 472915 BLAKE2B ae7b6bc6cb742712981ba8972bcecccc63d440b2a77c5a14f91ba5106c013774313d65fd3f42b843ba4027ab17cf9d44d256270f7f8ad11907714f16f3149078 SHA512 08a3095b37a9b897400f2be7dbb9de10d129ae4eef193d03955fdf84017cd3a5d7419e856aa68a425e609419868e8b1dd5409b4f218cc24feeb059c1898cdff4
DIST bpftool-libbpf-v7.5.0-sources.tar.gz 1510032 BLAKE2B cc9beac4034317f89ae3c1088d1b1a1948778bcdb51d7ed7f566e4e5ab720c1128ca467d51d0bc3ffe7b1f69800249362baef5dfaf858275050f96b744fdbca6 SHA512 db12c305b77fea3689dbc1ce94527f0f21fa9de21fcdb36385e3fe492137335bb393f90e456c06601495ccc984230a531c432709db6514b545e0aeeda7ca3c99
DIST libbpf-1.4.7.tar.gz 1016441 BLAKE2B 10be52c7e97b2f08edd33cb263c4737bb52edfd2226f0c5b86d4f95b584b81f8f6b1ede469e9ad6c231e55b6d6b9a038160662606c3f30dc79b1336aaaa90e74 SHA512 f09ff28ac75b0d0c1bfe7d233aee6a00e5c21f185646b2afe11b7bd048d74962f893237437dd81a762768f9235b9f2a2a33cb297201b2aa3e98f7c6f58e5b365
DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2
DIST linux-6.11.tar.xz 146900704 BLAKE2B e7750c0878d71a56a0ce52d4c4c912199dad5bf5e2e8f872585a6494afbb37cbd852e612a6858936d2dc9b7776a3933818f540db408d57e90d18ea5249bba7ab SHA512 329c1f94008742e3f0c2ce7e591a16316d1b2cb9ea4596d4f45604097e07b7aa2f64afa40630a07f321a858455c77aa32ba57b271932ddcf4dc27863f9081cea
DIST linux-6.8.tar.xz 142502100 BLAKE2B c6f17f816cea16e629f63e9379b98888713f57b2c5173306926471f139a9d612a0c74e119341f8075390e55e203d787d9edeb4ad5a064b18870f6f0f7ffaafb2 SHA512 5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068
DIST linux-6.9.tar.xz 144034416 BLAKE2B 4cf86c3cfe6e6534745d42dfaeca59b17ea1168c4e8b615c80e6d8aac735f11283cd85fa992b440b5d4452917e94b9f08397a64af0be5894e3df23c68892377e SHA512 fed3b4cd1fbfb4d94618587c1934273d2ecc8b6e42a3d586ff8a5f24980be930f2ef803aa2923ca3bfa5e4e619f967f3af315368f24fa76f610b10443624a579
DIST patch-6.10.3.xz 252260 BLAKE2B 65acf62ff3e326d5ebb9f47067b626a25295fde2057531cf43e537601c42b0110419c0d6eee8c7c24e5d6d88ecf30e9b76d516efb925c91817504c52780b4df1 SHA512 28ad0de2086ca4b59637f8a7c69c6f5436b53235bf52c9ee18f428748c773780c54606a5c96d71614cadd49c707a8bb11843a7393da078e15d7f554244bfb9ca
DIST patch-6.11.2.xz 229032 BLAKE2B 43393fdde341b4058ff75b1fb02174ce9cfdb03063de93f86cf3bb61e9faabb0cd4ba52bc2f6fae4898454d18379fb2da9743be6987eb4326fbadf459a695c46 SHA512 a75a5b8b08d3c4f90329d0c18c1b3f08d8eca81c07bfb1966a34a84b2743ebdcabda39d7189b7681ee6e60dbf4d2ac996d3f6bc13a14eb4fea3b4eca9b4ea56a
DIST patch-6.8.2.xz 247244 BLAKE2B a85078230548543c38550a5546689d0b44a54208cdad591ab34e10dec9348ce2f74e45bf85f373b14977d40556067e2e2c17ac4b6791fbb8aaba98feccd3cdac SHA512 a8e32b89f7680670c69c62f356846bb65b57614f979114627a9a2f945d7dc97c921d30197dffa993e5b18e499ba8c7196046ffdf0e721528a5378d1ee65a9ba5
DIST patch-6.9.2.xz 16184 BLAKE2B 8a37e96c253b55b57c86f1654f2ea8bf65af96b1b38213e90032cb918bb8eea992d6ddbfa6a6774a229ab2e2288ab57bdb6cbad6e7e393c123f24850e06847c9 SHA512 a27af24f0caaa5de3811b6db5acc2d72b96df9ebb5c44bad99a949d871fb06c6ffd2be10cfc35b246d430c7be2291701f802aed47eaa8818ad12b8818a60f3ec

View File

@ -33,7 +33,7 @@ RDEPEND="
sys-libs/zlib:=
virtual/libelf:=
caps? ( sys-libs/libcap:= )
llvm? ( sys-devel/llvm:= )
llvm? ( llvm-core/llvm:= )
"
DEPEND="
${RDEPEND}
@ -119,5 +119,5 @@ src_install() {
}
pkg_postinst() {
optfeature "clang-bpf-co-re support" sys-devel/clang[llvm_targets_BPF]
optfeature "clang-bpf-co-re support" llvm-core/clang[llvm_targets_BPF]
}

View File

@ -33,7 +33,7 @@ RDEPEND="
sys-libs/zlib:=
virtual/libelf:=
caps? ( sys-libs/libcap:= )
llvm? ( sys-devel/llvm:= )
llvm? ( llvm-core/llvm:= )
"
DEPEND="
${RDEPEND}
@ -119,5 +119,5 @@ src_install() {
}
pkg_postinst() {
optfeature "clang-bpf-co-re support" sys-devel/clang[llvm_targets_BPF]
optfeature "clang-bpf-co-re support" llvm-core/clang[llvm_targets_BPF]
}

View File

@ -46,7 +46,7 @@ REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )"
RDEPEND="
caps? ( sys-libs/libcap:= )
llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}') )
llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') )
!llvm? ( sys-libs/binutils-libs:= )
sys-libs/zlib:=
virtual/libelf:=
@ -59,7 +59,7 @@ BDEPEND="
${PYTHON_DEPS}
app-arch/tar
dev-python/docutils
$(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}[llvm_targets_BPF]')
$(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]')
"
CONFIG_CHECK="~DEBUG_INFO_BTF"

View File

@ -1,127 +0,0 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit estack linux-info optfeature python-any-r1 bash-completion-r1 toolchain-funcs
DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps"
HOMEPAGE="https://kernel.org/"
# Use LINUX_VERSION to specify the full kernel version triple (x.y.z)
LINUX_VERSION=6.10.3
LINUX_VER=$(ver_cut 1-2 ${LINUX_VERSION})
LINUX_V="${LINUX_VERSION:0:1}.x"
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
LINUX_PATCH="patch-${LINUX_VERSION}.xz"
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
S_K="${WORKDIR}/linux-${LINUX_VER}"
S="${S_K}/tools/bpf/bpftool"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="caps llvm"
RDEPEND="
sys-libs/zlib:=
virtual/libelf:=
caps? ( sys-libs/libcap:= )
llvm? ( sys-devel/llvm:= )
!llvm? ( sys-libs/binutils-libs:= )
"
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-5.8
"
BDEPEND="
${LINUX_PATCH+dev-util/patchutils}
${PYTHON_DEPS}
app-arch/tar
dev-python/docutils
"
CONFIG_CHECK="~DEBUG_INFO_BTF"
# src_unpack and src_prepare are copied from dev-util/perf since
# it's building from the same tarball, please keep it in sync with perf
src_unpack() {
local paths=(
'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*'
'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*'
'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*'
'tools/scripts/*'
)
# We expect the tar implementation to support the -j and --wildcards option
echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}"
gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \
"${paths[@]/#/linux-${LINUX_VER}/}" || die
if [[ -n ${LINUX_PATCH} ]] ; then
eshopts_push -o noglob
ebegin "Filtering partial source patch"
xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch
assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed"
eend $? || die "filterdiff failed"
test -s ${P}.patch || die "patch is empty?!"
eshopts_pop
fi
local a
for a in ${A}; do
[[ ${a} == ${LINUX_SOURCES} ]] && continue
[[ ${a} == ${LINUX_PATCH} ]] && continue
unpack ${a}
done
}
src_prepare() {
default
if [[ -n ${LINUX_PATCH} ]] ; then
pushd "${S_K}" >/dev/null || die
eapply "${WORKDIR}"/${P}.patch
popd || die
fi
# Use rst2man or rst2man.py depending on which one exists (#930076)
type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' Documentation/Makefile || die
# remove -Werror (bug 887981)
sed -i -e 's/\-Werror//g' ../../lib/bpf/Makefile || die
}
bpftool_make() {
local arch=$(tc-arch-kernel)
tc-export AR CC LD
emake V=1 VF=1 \
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" \
EXTRA_CFLAGS="${CFLAGS}" ARCH="${arch}" \
prefix="${EPREFIX}"/usr \
bash_compdir="$(get_bashcompdir)" \
feature-libcap="$(usex caps 1 0)" \
feature-llvm="$(usex llvm 1 0)" \
"$@"
}
src_compile() {
bpftool_make
bpftool_make -C Documentation
}
src_install() {
bpftool_make DESTDIR="${D}" install
bpftool_make mandir="${ED}"/usr/share/man -C Documentation install
}
pkg_postinst() {
optfeature "clang-bpf-co-re support" sys-devel/clang[llvm_targets_BPF]
}

View File

@ -1,139 +0,0 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LLVM_COMPAT=( {15..19} )
LLVM_OPTIONAL=1
PYTHON_COMPAT=( python3_{10..13} )
inherit bash-completion-r1 estack linux-info llvm-r1 optfeature python-any-r1 toolchain-funcs
DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps"
HOMEPAGE="https://kernel.org/"
# Use LINUX_VERSION to specify the full kernel version triple (x.y.z)
LINUX_VERSION=6.11.2
LINUX_VER=$(ver_cut 1-2 ${LINUX_VERSION})
LINUX_V="${LINUX_VERSION:0:1}.x"
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
if [[ ${LINUX_VERSION} == *.*.* ]] ; then
LINUX_PATCH="patch-${LINUX_VERSION}.xz"
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
fi
S_K="${WORKDIR}/linux-${LINUX_VER}"
S="${S_K}/tools/bpf/bpftool"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="caps llvm"
RDEPEND="
sys-libs/zlib:=
virtual/libelf:=
caps? ( sys-libs/libcap:= )
llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}') )
!llvm? ( sys-libs/binutils-libs:= )
"
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-5.8
"
BDEPEND="
${LINUX_PATCH+dev-util/patchutils}
${PYTHON_DEPS}
app-arch/tar
dev-python/docutils
"
CONFIG_CHECK="~DEBUG_INFO_BTF"
pkg_setup() {
python-any-r1_pkg_setup
use llvm && llvm-r1_pkg_setup
}
# src_unpack and src_prepare are copied from dev-util/perf since
# it's building from the same tarball, please keep it in sync with perf
src_unpack() {
local paths=(
'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*'
'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*'
'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*'
'tools/scripts/*'
)
# We expect the tar implementation to support the -j and --wildcards option
echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}"
gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \
"${paths[@]/#/linux-${LINUX_VER}/}" || die
if [[ -n ${LINUX_PATCH} ]] ; then
eshopts_push -o noglob
ebegin "Filtering partial source patch"
xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch
assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed"
eend $? || die "filterdiff failed"
test -s ${P}.patch || die "patch is empty?!"
eshopts_pop
fi
local a
for a in ${A}; do
[[ ${a} == ${LINUX_SOURCES} ]] && continue
[[ ${a} == ${LINUX_PATCH} ]] && continue
unpack ${a}
done
}
src_prepare() {
default
if [[ -n ${LINUX_PATCH} ]] ; then
pushd "${S_K}" >/dev/null || die
eapply "${WORKDIR}"/${P}.patch
popd || die
fi
# Use rst2man or rst2man.py depending on which one exists (#930076)
type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' Documentation/Makefile || die
# remove -Werror (bug 887981)
sed -i -e 's/\-Werror//g' ../../lib/bpf/Makefile || die
# fix up python shebangs (bug 940781)
python_fix_shebang "${S_K}"/scripts/bpf_doc.py
}
bpftool_make() {
local arch=$(tc-arch-kernel)
tc-export AR CC LD
emake V=1 VF=1 \
HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" \
EXTRA_CFLAGS="${CFLAGS}" ARCH="${arch}" \
prefix="${EPREFIX}"/usr \
bash_compdir="$(get_bashcompdir)" \
feature-libcap="$(usex caps 1 0)" \
feature-llvm="$(usex llvm 1 0)" \
"$@"
}
src_compile() {
bpftool_make
bpftool_make -C Documentation
}
src_install() {
bpftool_make DESTDIR="${D}" install
bpftool_make mandir="${ED}"/usr/share/man -C Documentation install
}
pkg_postinst() {
optfeature "clang-bpf-co-re support" sys-devel/clang[llvm_targets_BPF]
}

View File

@ -1,4 +1,4 @@
# Copyright 2021-2024 Gentoo Authors
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -36,7 +36,7 @@ else
S="${WORKDIR}/bpftool-libbpf-v${PV}-sources"
fi
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
LICENSE="|| ( GPL-2 BSD-2 )"
@ -46,7 +46,7 @@ REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )"
RDEPEND="
caps? ( sys-libs/libcap:= )
llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}') )
llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') )
!llvm? ( sys-libs/binutils-libs:= )
sys-libs/zlib:=
virtual/libelf:=
@ -59,7 +59,7 @@ BDEPEND="
${PYTHON_DEPS}
app-arch/tar
dev-python/docutils
clang? ( $(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}[llvm_targets_BPF]') )
clang? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]') )
!clang? ( sys-devel/bpf-toolchain )
"

View File

@ -46,7 +46,7 @@ REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )"
RDEPEND="
caps? ( sys-libs/libcap:= )
llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}') )
llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') )
!llvm? ( sys-libs/binutils-libs:= )
sys-libs/zlib:=
virtual/libelf:=
@ -59,7 +59,7 @@ BDEPEND="
${PYTHON_DEPS}
app-arch/tar
dev-python/docutils
clang? ( $(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}[llvm_targets_BPF]') )
clang? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]') )
!clang? ( sys-devel/bpf-toolchain )
"

View File

@ -11,8 +11,8 @@
</maintainer>
<use>
<flag name="caps">Use <pkg>sys-libs/libcap</pkg> to enable unprivileged run support</flag>
<flag name="clang">Use <pkg>sys-devel/clang</pkg> instead of <pkg>sys-devel/bpf-toolchain</pkg> for BPF CO-RE support</flag>
<flag name="llvm">Use <pkg>sys-devel/llvm</pkg> instead of libbfd (<pkg>sys-libs/binutils-libs</pkg>) for JIT disassembly</flag>
<flag name="clang">Use <pkg>llvm-core/clang</pkg> instead of <pkg>sys-devel/bpf-toolchain</pkg> for BPF CO-RE support</flag>
<flag name="llvm">Use <pkg>llvm-core/llvm</pkg> instead of libbfd (<pkg>sys-libs/binutils-libs</pkg>) for JIT disassembly</flag>
</use>
<upstream>
<remote-id type="github">libbpf/bpftool</remote-id>