# Copyright 2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit linux-mod-r1 DESCRIPTION="Linux kernel driver for Xbox One and Xbox Series X|S accessories" HOMEPAGE="https://github.com/dlundqvist/xone" SRC_URI=" mirror+https://github.com/dlundqvist/xone/archive/v${PV}.tar.gz -> ${P}.tar.gz https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/03/2ea9591b-f751-442c-80ce-8f4692cdc67b_6b555a3a288153cf04aec6e03cba360afe2fce34.cab https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/06/1dbd7cb4-53bc-4857-a5b0-5955c8acaf71_9081931e7d664429a93ffda0db41b7545b7ac257.cab https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2017/08/aeff215c-3bc4-4d36-a3ea-e14bfa8fa9d2_e58550c4f74a27e51e5cb6868b10ff633fa77164.cab " LICENSE="GPL-2+ MS-TOU" SLOT="0" KEYWORDS="~amd64" RESTRICT="bindist mirror test" BDEPEND="app-arch/cabextract" CONFIG_CHECK="SND CFG80211 INPUT_FF_MEMLESS USB POWER_SUPPLY LEDS_CLASS HID" MODULES_KERNEL_MIN=6.5 src_unpack() { unpack ${P}.tar.gz cabextract -F FW_ACC_00U.bin -d "${S}/xone_firmware_02fe" \ "${DISTDIR}/2ea9591b-f751-442c-80ce-8f4692cdc67b_6b555a3a288153cf04aec6e03cba360afe2fce34.cab" > /dev/null || die cabextract -F FW_ACC_00U.bin -d "${S}/xone_firmware_02e6" \ "${DISTDIR}/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab" > /dev/null || die cabextract -F FW_ACC_CL.bin -d "${S}/xone_firmware_02f9" \ "${DISTDIR}/1dbd7cb4-53bc-4857-a5b0-5955c8acaf71_9081931e7d664429a93ffda0db41b7545b7ac257.cab" > /dev/null || die cabextract -F FW_ACC_BR.bin -d "${S}/xone_firmware_091e" \ "${DISTDIR}/aeff215c-3bc4-4d36-a3ea-e14bfa8fa9d2_e58550c4f74a27e51e5cb6868b10ff633fa77164.cab" > /dev/null || die } src_prepare() { cp "${FILESDIR}/Makefile" "${S}" || die default } src_compile() { local modlist=( xone_wired=kernel/drivers/input/joystick xone_dongle=kernel/drivers/input/joystick xone_gip=kernel/drivers/input/joystick xone_gip_gamepad=kernel/drivers/input/joystick xone_gip_headset=kernel/drivers/input/joystick xone_gip_chatpad=kernel/drivers/input/joystick xone_gip_madcatz_strat=kernel/drivers/input/joystick xone_gip_madcatz_glam=kernel/drivers/input/joystick xone_gip_pdp_jaguar=kernel/drivers/input/joystick ) linux-mod-r1_src_compile } src_install() { linux-mod-r1_src_install einfo "Installing module blacklist" insinto /etc/modprobe.d/ newins "${S}"/install/modprobe.conf xone-blacklist.conf einfo "Installing Microsoft binary firmware" insinto /lib/firmware/ newins "${S}"/xone_firmware_02e6/FW_ACC_00U.bin xone_dongle_02e6.bin newins "${S}"/xone_firmware_02fe/FW_ACC_00U.bin xone_dongle_02fe.bin newins "${S}"/xone_firmware_02f9/FW_ACC_CL.bin xone_dongle_02f9.bin newins "${S}"/xone_firmware_091e/FW_ACC_BR.bin xone_dongle_091e.bin }