xdp-tools had broken tests that always failed because of version tags in global.

This commit is contained in:
TheK0tYaRa 2025-02-04 03:22:56 +02:00
parent bdd37568e4
commit 9a15f26a29
3 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1 @@
DIST xdp-tools-1.5.0.tar.gz 353321 BLAKE2B 41ef06c544af743a8542306af93b1d2a671e53118aa9c4230521c755868245d854ef4ed38ac47102869c18104d67808e8ede8baef45dde8811b074501fc34520 SHA512 9713280fc5d58c19f972cced614f0acdb21de0f467439af2364217ae5381963f90c9e4aba9b6de1a8fdb7fa36c1f645c42b9cd1c86a2cd60168a3b974f14c0dd

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>holger@applied-asynchrony.com</email>
<name>Holger Hoffstätte</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<maintainer type="person">
<email>zx2c4@gentoo.org</email>
<name>Jason A. Donenfeld</name>
</maintainer>
<upstream>
<remote-id type="github">xdp-project/xdp-tools</remote-id>
</upstream>
<use>
<flag name="tools">Install various helper tools rather than just libxdp.</flag>
</use>
</pkgmetadata>

View file

@ -0,0 +1,102 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic linux-info toolchain-funcs
DESCRIPTION="The libxdp library and various tools for use with XDP"
HOMEPAGE="https://github.com/xdp-project/xdp-tools"
SRC_URI="https://github.com/xdp-project/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2 LGPL-2.1 BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="+tools test"
DEPEND="
dev-libs/libbpf:=
net-libs/libpcap
sys-libs/zlib
virtual/libelf
"
RDEPEND="${DEPEND}"
BDEPEND="
dev-util/bpftool
sys-apps/grep[pcre]
llvm-core/clang:*[llvm_targets_BPF]
sys-devel/m4
"
# Not prebuilt -- we build them -- but they're not ordinary ELF objects either.
QA_PREBUILT="usr/lib/bpf/*.o"
MAKEOPTS+=" V=1"
CONFIG_CHECK="~BPF ~BPF_JIT ~BPF_SYSCALL ~HAVE_EBPF_JIT ~XDP_SOCKETS ~XDP_SOCKETS_DIAG"
src_prepare() {
# remove -Werror: #899744
sed -i 's/-Werror//g' lib/Makefile lib/defines.mk || die
sed -i '/-Werror/d' lib/common.mk lib/libxdp/Makefile \
lib/libxdp/tests/Makefile lib/util/Makefile || die
if ! use test; then
sed -i 's/check man/man/g' lib/libxdp/Makefile || die
fi
default
}
src_configure() {
# filter LTO: #861587
filter-lto
# filter LDFLAGS some more: #916591
filter-ldflags -Wl,--{icf,lto}*
# force ld.bfd: #916591
tc-ld-force-bfd
export CC="$(tc-getCC)"
export PREFIX="${EPREFIX}/usr"
export LIBDIR="${PREFIX}/$(get_libdir)"
export BPF_OBJECT_DIR="${PREFIX}/lib/bpf"
export PRODUCTION=1
export DYNAMIC_LIBXDP=1
export FORCE_SYSTEM_LIBBPF=1
default
}
src_test() { :; }
src_install() {
default
# To remove the scripts/testing files that are installed.
rm -r "${ED}/usr/share/xdp-tools" || die
# We can't control static archive generation yet.
rm "${ED}/usr/$(get_libdir)/libxdp.a" || die
use tools || { rm "${ED}/usr/sbin"/* || die; }
# These are ELF objects but BPF ones.
dostrip -x /usr/lib/bpf
}
pkg_postinst() {
elog
elog "Many BPF utilities need access to a mounted bpffs virtual file system."
elog "Either mount it manually like this:"
elog
elog " mount bpffs /sys/fs/bpf -t bpf -o nosuid,nodev,noexec,relatime,mode=700"
elog
elog "or add the following line to your /etc/fstab to always mount it at boot time:"
elog
elog " bpffs /sys/fs/bpf bpf nosuid,nodev,noexec,relatime,mode=700 0 0"
elog
elog "You can verify that bpffs is mounted with:"
elog
elog " mount | grep /sys/fs/bpf"
elog
}