udev-hid-bpf-2.2.0_p20251121gentoo
download
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Autogenerated by pycargoebuild 0.15.0
EAPI=8
CRATES="
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]+v1.6.1
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]+wasi-snapshot-preview1
[email protected]+wasi-0.2.4
[email protected]+wasi-0.2.4
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
"
RUST_MIN_VER="1.82.0"
PYTHON_COMPAT=( python3_{11..14} )
inherit cargo linux-info meson python-any-r1 udev
MY_PV=${PV/_p/-}
MY_P=${PN}-${MY_PV}
DESCRIPTION="Automatic HID-BPF loader based on udev events for device workarounds"
HOMEPAGE="https://libevdev.pages.freedesktop.org/udev-hid-bpf/"
SRC_URI="
https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/archive/${MY_PV}/${MY_P}.tar.bz2
${CARGO_CRATE_URIS}
"
S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
# Dependent crate licenses
LICENSE+="
BSD-2 MIT Unicode-3.0
|| ( Apache-2.0 Boost-1.0 )
"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test userhacks"
RESTRICT="!test? ( test )"
DEPEND="
dev-libs/libbpf:=
virtual/libudev:=
"
RDEPEND="${DEPEND}"
BDEPEND="
>=dev-util/bpftool-7.0.0
llvm-core/clang[llvm_targets_BPF]
test? (
$(python_gen_any_dep '
dev-python/pytest-xdist[${PYTHON_USEDEP}]
')
)
"
# BPF
QA_EXECSTACK="
usr/lib/firmware/hid/bpf/*
lib/firmware/hid/bpf/*
"
PATCHES=(
"${FILESDIR}"/${PN}-2.2.0_p20251121-click.patch
"${FILESDIR}"/${PN}-2.2.0_p20251121-cargo-no-bundled-libbpf.patch
)
python_check_deps() {
python_has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
}
pkg_pretend() {
local options=(
BPF DEBUG_INFO_BTF DEBUG_INFO_BTF_MODULES
# hidraw: https://docs.kernel.org/hid/hid-bpf.html#tracing
HID_BPF HIDRAW BPF_EVENTS TRACING BPF_SYSCALL
# tools/testing/selftests/hid/config
BPF_JIT BPF_KPROBE_OVERRIDE BPF_LSM
BPF_PRELOAD BPF_PRELOAD_UMD BPF_KPROBE_OVERRIDE
BPF_STREAM_PARSER CGROUP_BPF DYNAMIC_FTRACE_WITH_DIRECT_CALLS
FPROBE FTRACE_SYSCALLS FUNCTION_TRACER HID
INPUT_EVDEV UHID LEDS_CLASS_MULTICOLOR
USB USB_HID HID_APPLE HID_ITE HID_MULTITOUCH
HID_PLAYSTATION PLAYSTATION_FF HID_SONY
SONY_FF HID_WACOM
)
local CONFIG_CHECK f
for f in "${options[@]}"; do
CONFIG_CHECK+=" ~${f}"
done
check_extra_config
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_configure() {
# cargo_env vs meson, plus cargo test wants build to be a subdir
BUILD_DIR="${S}"/build
local bpf_types=(
# https://gitlab.freedesktop.org/libevdev/udev-hid-bpf#quirks-user-hack-testing-and-stable
# 'stable' isn't on by default, but README says:
# Distributions that package udev-hid-bpf should package these stable quirks.
stable
testing
$(usev userhacks)
)
local emesonargs=(
# Can't yet use GCC: https://gcc.gnu.org/PR121419
-Dbpf-compiler=clang
-Dbpfs="$(IFS=,; echo "${bpf_types[*]}")"
-Dudevdir="${EPREFIX}$(get_udevdir)"
$(meson_feature test tests)
)
cargo_env meson_src_configure
ln -s "${CARGO_HOME}" "${BUILD_DIR}/cargo-home" || die
}
src_compile() {
cargo_env meson_src_compile
}
src_test() {
# Breakage w/ click-8.3 and mysterious missing _fields_
local -x PYTEST_ADDOPTS="-k 'not (test_sync_with_kernel_tree.py or TestTUXEDOSirius16Gen1andGen2)'"
cargo_env meson_src_test
}
src_install() {
cargo_env meson_src_install
# BPF objects
dostrip -x /usr/lib/firmware /lib/firmware
}
pkg_postrm() {
udev_reload
}
pkg_postinst() {
udev_reload
}