commit:     8b31214dabfbf5b99d44e2daa06fc159acb230ec
Author:     Holger Hoffstätte <holger <AT> applied-asynchrony <DOT> com>
AuthorDate: Fri Oct  4 16:38:06 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Oct  5 05:20:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b31214d

dev-util/bpftool: bump to use 6.11.2, use llvm-r1, support llvm-19

Closes: https://bugs.gentoo.org/938351
Closes: https://bugs.gentoo.org/939737
Signed-off-by: Holger Hoffstätte <holger <AT> applied-asynchrony.com>
Closes: https://github.com/gentoo/gentoo/pull/38880
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/bpftool/Manifest                |   2 +
 dev-util/bpftool/bpftool-7.5.0-r2.ebuild | 135 +++++++++++++++++++++++++++++++
 2 files changed, 137 insertions(+)

diff --git a/dev-util/bpftool/Manifest b/dev-util/bpftool/Manifest
index 872e923d8b03..14591e4668ad 100644
--- a/dev-util/bpftool/Manifest
+++ b/dev-util/bpftool/Manifest
@@ -1,6 +1,8 @@
 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

diff --git a/dev-util/bpftool/bpftool-7.5.0-r2.ebuild 
b/dev-util/bpftool/bpftool-7.5.0-r2.ebuild
new file mode 100644
index 000000000000..b2a0a9b8b857
--- /dev/null
+++ b/dev-util/bpftool/bpftool-7.5.0-r2.ebuild
@@ -0,0 +1,135 @@
+# 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() {
+       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
+}
+
+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]
+}

Reply via email to