You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sys-firmware/broadcom-bt-firmware/broadcom-bt-firmware-12.0.1...

64 lines
1.6 KiB

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit linux-info multiprocessing
DESCRIPTION="Broadcom Bluetooth firmware"
HOMEPAGE="https://github.com/winterheart/broadcom-bt-firmware"
SRC_URI="https://github.com/winterheart/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="broadcom_bcm20702 MIT"
SLOT="0"
KEYWORDS="~amd64 ~ppc64 ~x86"
# Re-use compress-* USE flags from sys-kernel/linux-firmware.
IUSE="compress-xz compress-zstd"
REQUIRED_USE="?? ( compress-xz compress-zstd )"
BDEPEND="
compress-xz? ( app-arch/xz-utils )
compress-zstd? ( app-arch/zstd )
"
pkg_setup() {
if use compress-xz || use compress-zstd ; then
local CONFIG_CHECK
if kernel_is -ge 5 19; then
use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS_XZ"
use compress-zstd && CONFIG_CHECK="~FW_LOADER_COMPRESS_ZSTD"
else
use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS"
if use compress-zstd; then
eerror "Kernels <5.19 do not support ZSTD-compressed firmware files"
fi
fi
linux-info_pkg_setup
fi
}
src_install() {
insinto /lib/firmware
doins -r brcm
if use compress-xz || use compress-zstd; then
pushd "${ED}/lib/firmware/brcm" &>/dev/null || die
einfo "Compressing firmware ..."
local ext
local compressor
if use compress-xz; then
ext=xz
compressor="xz -T1 -C crc32"
elif use compress-zstd; then
ext=zst
compressor="zstd -15 -T1 -C -q --rm"
fi
find . -type f -print0 | \
xargs -0 -P $(makeopts_jobs) -I'{}' ${compressor} '{}'
assert
popd &>/dev/null || die
fi
dodoc DEVICES.md README.md
}