forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Jakov Smolić <[email protected]>
- Loading branch information
Showing
2 changed files
with
119 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,4 @@ | ||
DIST linux-5.14.tar.xz 120669872 BLAKE2B 0047f5aaa3940dff97f4055ef544faafbbb5282128e6afe21d2f47d8dc8c395806a17016febfa050117d16f59e74b882cb8b9c5011d68f119c230d0a4d120524 SHA512 8e4f3ec3d36f774280f75dc7b004a43e09417af58f12e9c9f8348976659d4cfda7ad905f306f43fed66a27922e5c45db22e46bbfa7a0b9f365012380de3b6f64 | ||
DIST linux-5.15.tar.xz 121913744 BLAKE2B 3921274b23f7938abdf3ed9334534b4581e13d7484303d3a5280eddb038999aaa8b836666a487472d9c4a219af0f06b9fecccaf348fb5510ab8762f4ef4b7e83 SHA512 d25ad40b5bcd6a4c6042fd0fd84e196e7a58024734c3e9a484fd0d5d54a0c1d87db8a3c784eff55e43b6f021709dc685eb0efa18d2aec327e4f88a79f405705a | ||
DIST patch-5.14.14.xz 528644 BLAKE2B 3917c340eb1cd814b7fd40420e32baa84c6a062a7c52ab75301cfce8e59acf055f3c9ff38f4ae1590837f245607e294277001f0a0b53ee44b0056b83f98bc68f SHA512 258fa67ee6e6d13b4e92d361898313b4e2f3d9d0be883e5c5a0c436e51cf8bcb3eb5acb46272bb5df2bbf8390b81152e8244b1d6faf7299314589b90c95eebba | ||
DIST patch-5.15.2.xz 17244 BLAKE2B 769ef83b6613d865b420d048c25ac1df4c2f88f7ae580b373f874d312720bad877e561756943c9833535a94e5621922bba24cb1b804a1540f2e67cfa23f1a1aa SHA512 5f0123bdc7c9875e7b3f02a89496a8a1e0808d77dc58fb725e250d93d69510a1ef6462cfb38cb38e78e20ca34fd7446f58327cad5e67fc68ec36d15777048edf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# Copyright 2021 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
PYTHON_COMPAT=( python3_{8..10} ) | ||
inherit estack linux-info optfeature python-any-r1 toolchain-funcs | ||
|
||
MY_PV="${PV/_/-}" | ||
MY_PV="${MY_PV/-pre/-git}" | ||
|
||
DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps" | ||
HOMEPAGE="https://kernel.org/" | ||
|
||
LINUX_V="${PV:0:1}.x" | ||
LINUX_VER=$(ver_cut 1-2) | ||
LINUX_PATCH=patch-${PV}.xz | ||
SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" | ||
|
||
LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" | ||
SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" | ||
|
||
S_K="${WORKDIR}/linux-${LINUX_VER}" | ||
S="${S_K}/tools/bpf/bpftool" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~x86" | ||
IUSE="caps" | ||
|
||
RDEPEND=" | ||
sys-libs/binutils-libs:= | ||
sys-libs/zlib:= | ||
virtual/libelf:= | ||
caps? ( sys-libs/libcap:= ) | ||
" | ||
DEPEND=" | ||
${RDEPEND} | ||
>=sys-kernel/linux-headers-5.8 | ||
" | ||
BDEPEND=" | ||
${LINUX_PATCH+dev-util/patchutils} | ||
${PYTHON_DEPS} | ||
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=( | ||
tools/bpf kernel/bpf | ||
tools/{arch,build,include,lib,perf,scripts} {scripts,include,lib} "arch/*/lib" | ||
) | ||
|
||
# We expect the tar implementation to support the -j option (both | ||
# GNU tar and libarchive's tar support that). | ||
echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" | ||
tar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ | ||
"${paths[@]/#/linux-${LINUX_VER}/}" || die | ||
|
||
if [[ -n ${LINUX_PATCH} ]] ; then | ||
eshopts_push -o noglob | ||
ebegin "Filtering partial source patch" | ||
filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \ | ||
> ${P}.patch | ||
eend $? || die "filterdiff failed" | ||
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 | ||
|
||
# dev-python/docutils installs rst2man.py, not rst2man | ||
sed -i -e 's/rst2man/rst2man.py/g' Documentation/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}" BPFTOOL_VERSION="${MY_PV}" \ | ||
prefix="${EPREFIX}"/usr \ | ||
feature-libcap="$(usex caps 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] | ||
} |