blob: ad2af756d59c9be8ce46aee00054d30153899272 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# 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
}
|