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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Most up-to-date uCode for the Broadcom wifi chips on Raspberry Pi SBCs"
HOMEPAGE="
https://github.com/RPi-Distro/firmware-nonfree
https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree"
MY_PN=firmware-nonfree
SRC_URI="https://archive.raspberrypi.org/debian/pool/main/f/${MY_PN}/${MY_PN}_$(ver_cut 1)-$(ver_cut 2)~bpo11+1+rpt$(ver_cut 4).debian.tar.xz"
S="${WORKDIR}"
LICENSE="Broadcom"
SLOT="0"
KEYWORDS="arm arm64"
RDEPEND="
net-wireless/wireless-regdb
!sys-kernel/linux-firmware[-savedconfig]
"
pkg_pretend() {
local -a BADFILES=()
local txt file
# /lib/firmware/brcm/brcmfmac434{30,36,55,56}-sdio.*.txt
# The above pattern works because the files we want to hit
# have names of the form:
# * /lib/firmware/brcm/brcmfmac43430-sdio.AP6212.txt
# * /lib/firmware/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
# * /lib/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt
# * /lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
# * /lib/firmware/brcm/brcmfmac43455-sdio.MINIX-NEO Z83-4.txt
# * /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt
# * /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
# * /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
# While the files installed by raspberrypi-wifi-ucode have names
# of the form:
# * /lib/firmware/brcm/brcmfmac43430-sdio.txt
# * /lib/firmware/brcm/brcmfmac43436-sdio.txt
# * /lib/firmware/brcm/brcmfmac43455-sdio.txt
# * /lib/firmware/brcm/brcmfmac43456-sdio.txt
# So no overlap is assured.
for txt in "${EPREFIX}"/lib/firmware/brcm/brcmfmac434{30,36,55,56}-sdio.*.txt; do
[[ -e "${txt}" ]] && BADFILES+=( "${txt}" )
done
if [[ "${#BADFILES[@]}" -gt 1 ]]; then
eerror "The following files should be excluded from the savedconfig of"
eerror "linux-firmware and linux-firmware should be re-emerged. Even"
eerror "though they do not collide with files from ${PN},"
eerror "they may be loaded preferentially to the files included in"
eerror "${PN}, leading to undefined behaviour."
eerror "List of files:"
for file in "${BADFILES[@]}"; do
eerror "${file}"
done
fi
}
src_configure() {
unlink "${S}"/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin || die
ln -rs \
"${S}"/debian/config/brcm80211/cypress/cyfmac43455-sdio-standard.bin \
"${S}"/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin || die
ln -frs \
"${S}"/debian/config/brcm80211/cypress/cyfmac43455-sdio-standard.bin \
"${S}"/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
ln -frs \
"${S}"/debian/config/brcm80211/cypress/cyfmac43455-sdio-standard.bin \
"${S}"/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
ln -frs \
"${S}"/debian/config/brcm80211/cypress/cyfmac43455-sdio-standard.bin \
"${S}"/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
}
src_install() {
insinto /lib/firmware/brcm
doins debian/config/brcm80211/brcm/*
insinto /lib/firmware/cypress
doins debian/config/brcm80211/cypress/*
dodoc debian/changelog
}
|