| 1 |
|
# Copyright 1999-2023 Gentoo Authors
|
|
1 |
# Copyright 1999-2026 Gentoo Authors
|
| 2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
3 |
|
| 4 |
|
EAPI=7
|
| 5 |
|
inherit udev
|
|
4 |
EAPI=8
|
|
5 |
|
|
6 |
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/alsa.asc
|
|
7 |
inherit linux-info udev verify-sig
|
| 6 |
8 |
|
| 7 |
9 |
DESCRIPTION="Advanced Linux Sound Architecture firmware"
|
| 8 |
10 |
HOMEPAGE="https://alsa-project.org/wiki/Main_Page"
|
| 9 |
|
SRC_URI="https://www.alsa-project.org/files/pub/firmware/${P}.tar.bz2"
|
|
11 |
SRC_URI="
|
|
12 |
https://www.alsa-project.org/files/pub/firmware/${P}.tar.bz2
|
|
13 |
verify-sig? ( https://www.alsa-project.org/files/pub/firmware/${P}.tar.bz2.sig )
|
|
14 |
"
|
| 10 |
15 |
|
| 11 |
|
LICENSE="GPL-2 freedist
|
|
16 |
LICENSE="
|
|
17 |
GPL-2 freedist
|
| 12 |
18 |
alsa_cards_korg1212? ( all-rights-reserved )
|
| 13 |
19 |
alsa_cards_maestro3? ( all-rights-reserved )
|
| 14 |
20 |
alsa_cards_sb16? ( all-rights-reserved )
|
| 15 |
|
alsa_cards_ymfpci? ( all-rights-reserved )"
|
|
21 |
alsa_cards_wavefront? ( all-rights-reserved )
|
|
22 |
alsa_cards_ymfpci? ( all-rights-reserved )
|
|
23 |
"
|
| 16 |
24 |
SLOT="0"
|
| 17 |
|
KEYWORDS="amd64 ppc ppc64 x86"
|
| 18 |
|
RESTRICT="alsa_cards_korg1212? ( bindist )
|
|
25 |
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
|
26 |
|
|
27 |
ECHOAUDIO_CARDS="
|
|
28 |
alsa_cards_darla20 alsa_cards_gina20 alsa_cards_layla20
|
|
29 |
alsa_cards_darla24 alsa_cards_gina24 alsa_cards_layla24
|
|
30 |
alsa_cards_mona alsa_cards_mia alsa_cards_indigo
|
|
31 |
alsa_cards_indigoio alsa_cards_echo3g
|
|
32 |
"
|
|
33 |
|
|
34 |
EMU_CARDS="
|
|
35 |
alsa_cards_emu1212 alsa_cards_emu1616 alsa_cards_emu1820
|
|
36 |
alsa_cards_emu10k1
|
|
37 |
"
|
|
38 |
|
|
39 |
IUSE="compress-xz compress-zstd +deduplicate
|
|
40 |
alsa_cards_cs46xx alsa_cards_pcxhr alsa_cards_vx222
|
|
41 |
alsa_cards_usb-usx2y alsa_cards_hdsp alsa_cards_hdspm
|
|
42 |
alsa_cards_mixart alsa_cards_asihpi alsa_cards_sb16
|
|
43 |
alsa_cards_korg1212 alsa_cards_maestro3 alsa_cards_ymfpci
|
|
44 |
alsa_cards_wavefront alsa_cards_msnd-pinnacle alsa_cards_aica
|
|
45 |
alsa_cards_ca0132 ${ECHOAUDIO_CARDS} ${EMU_CARDS}
|
|
46 |
"
|
|
47 |
REQUIRED_USE="?? ( compress-xz compress-zstd )"
|
|
48 |
|
|
49 |
RESTRICT="
|
|
50 |
alsa_cards_korg1212? ( bindist )
|
| 19 |
51 |
alsa_cards_maestro3? ( bindist )
|
| 20 |
52 |
alsa_cards_sb16? ( bindist )
|
| 21 |
|
alsa_cards_ymfpci? ( bindist )"
|
|
53 |
alsa_cards_wavefront? ( bindist )
|
|
54 |
alsa_cards_ymfpci? ( bindist )
|
|
55 |
"
|
| 22 |
56 |
|
| 23 |
|
ECHOAUDIO_CARDS="alsa_cards_darla20 alsa_cards_gina20 alsa_cards_layla20
|
| 24 |
|
alsa_cards_darla24 alsa_cards_gina24 alsa_cards_layla24 alsa_cards_mona
|
| 25 |
|
alsa_cards_mia alsa_cards_indigo alsa_cards_indigoio alsa_cards_echo3g"
|
| 26 |
|
|
| 27 |
|
EMU_CARDS="alsa_cards_emu1212 alsa_cards_emu1616 alsa_cards_emu1820
|
| 28 |
|
alsa_cards_emu10k1"
|
| 29 |
|
|
| 30 |
|
IUSE="alsa_cards_cs46xx alsa_cards_pcxhr alsa_cards_vx222 alsa_cards_usb-usx2y alsa_cards_hdsp
|
| 31 |
|
alsa_cards_hdspm alsa_cards_mixart alsa_cards_asihpi alsa_cards_sb16
|
| 32 |
|
alsa_cards_korg1212 alsa_cards_maestro3 alsa_cards_ymfpci alsa_cards_wavefront
|
| 33 |
|
alsa_cards_msnd-pinnacle alsa_cards_aica alsa_cards_ca0132 ${ECHOAUDIO_CARDS}
|
| 34 |
|
${EMU_CARDS}"
|
| 35 |
|
|
| 36 |
|
RDEPEND="alsa_cards_usb-usx2y? ( sys-apps/fxload )
|
|
57 |
RDEPEND="
|
|
58 |
alsa_cards_usb-usx2y? ( sys-apps/fxload )
|
| 37 |
59 |
alsa_cards_hdsp? ( media-sound/alsa-tools )
|
| 38 |
|
alsa_cards_hdspm? ( media-sound/alsa-tools )"
|
|
60 |
alsa_cards_hdspm? ( media-sound/alsa-tools )
|
|
61 |
deduplicate? (
|
|
62 |
alsa_cards_ca0132? ( sys-kernel/linux-firmware[redistributable] )
|
|
63 |
alsa_cards_korg1212? ( sys-kernel/linux-firmware[unknown-license] )
|
|
64 |
alsa_cards_maestro3? ( sys-kernel/linux-firmware[unknown-license] )
|
|
65 |
alsa_cards_sb16? ( sys-kernel/linux-firmware[unknown-license] )
|
|
66 |
alsa_cards_wavefront? ( sys-kernel/linux-firmware[unknown-license] )
|
|
67 |
alsa_cards_ymfpci? ( sys-kernel/linux-firmware[unknown-license] )
|
|
68 |
)
|
|
69 |
"
|
|
70 |
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-alsa )"
|
| 39 |
71 |
|
| 40 |
72 |
DOCS="README"
|
| 41 |
73 |
|
| ... | ... | |
| 43 |
75 |
"${FILESDIR}"/${PN}-1.2.4-musl.patch
|
| 44 |
76 |
)
|
| 45 |
77 |
|
|
78 |
pkg_setup() {
|
|
79 |
if use compress-xz || use compress-zstd ; then
|
|
80 |
local CONFIG_CHECK
|
|
81 |
|
|
82 |
if kernel_is -ge 5 19; then
|
|
83 |
use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS_XZ"
|
|
84 |
use compress-zstd && CONFIG_CHECK="~FW_LOADER_COMPRESS_ZSTD"
|
|
85 |
else
|
|
86 |
use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS"
|
|
87 |
if use compress-zstd; then
|
|
88 |
eerror "Kernels <5.19 do not support ZSTD-compressed firmware files"
|
|
89 |
fi
|
|
90 |
fi
|
|
91 |
fi
|
|
92 |
linux-info_pkg_setup
|
|
93 |
}
|
|
94 |
|
| 46 |
95 |
src_configure() {
|
| 47 |
|
econf --with-hotplug-dir=/lib/firmware
|
|
96 |
local myeconfargs=(
|
|
97 |
--with-hotplug-dir=/lib/firmware
|
|
98 |
$(use_enable alsa_cards_usb-usx2y buildfw)
|
|
99 |
)
|
|
100 |
econf "${myeconfargs[@]}"
|
| 48 |
101 |
}
|
| 49 |
102 |
|
| 50 |
103 |
src_install() {
|
| 51 |
104 |
default
|
| 52 |
105 |
|
| 53 |
|
use alsa_cards_pcxhr || rm -rf "${ED}"/usr/share/alsa/firmware/pcxhrloader "${ED}"/lib/firmware/pcxhr
|
| 54 |
|
use alsa_cards_vx222 || rm -rf "${ED}"/usr/share/alsa/firmware/vxloader "${ED}"/lib/firmware/vx
|
| 55 |
|
use alsa_cards_usb-usx2y || rm -rf "${ED}"/usr/share/alsa/firmware/usx2yloader "${ED}"/lib/firmware/vx
|
| 56 |
|
use alsa_cards_mixart || rm -rf "${ED}"/usr/share/alsa/firmware/mixartloader "${ED}"/lib/firmware/mixart
|
| 57 |
|
use alsa_cards_hdsp || use alsa_cards_hdspm || rm -rf "${ED}"/usr/share/alsa/firmware/hdsploader
|
| 58 |
|
use alsa_cards_asihpi || rm -rf "${ED}"/lib/firmware/asihpi
|
| 59 |
|
use alsa_cards_sb16 || rm -rf "${ED}"/lib/firmware/sb16
|
| 60 |
|
use alsa_cards_korg1212 || rm -rf "${ED}"/lib/firmware/korg
|
| 61 |
|
use alsa_cards_maestro3 || rm -rf "${ED}"/lib/firmware/ess
|
| 62 |
|
use alsa_cards_ymfpci || rm -rf "${ED}"/lib/firmware/yamaha
|
| 63 |
|
use alsa_cards_wavefront || rm -rf "${ED}"/lib/firmware/wavefront
|
| 64 |
|
use alsa_cards_msnd-pinnacle || rm -rf "${ED}"/lib/firmware/turtlebeach
|
| 65 |
|
use alsa_cards_aica || rm -rf "${ED}"/lib/firmware/aica_firmware.bin
|
| 66 |
|
use alsa_cards_ca0132 || rm -rf "${ED}"/lib/firmware/c{tefx,tspeq}.bin
|
| 67 |
|
use alsa_cards_cs46xx || rm -rf "${ED}"/lib/firmware/cs46xx
|
|
106 |
if ! use alsa_cards_pcxhr; then
|
|
107 |
rm -r "${ED}"/usr/share/alsa/firmware/pcxhrloader "${ED}"/lib/firmware/pcxhr || die
|
|
108 |
fi
|
|
109 |
|
|
110 |
if ! use alsa_cards_vx222; then
|
|
111 |
rm -r "${ED}"/usr/share/alsa/firmware/vxloader || die
|
|
112 |
fi
|
|
113 |
|
|
114 |
if ! use alsa_cards_usb-usx2y; then
|
|
115 |
rm -r "${ED}"/usr/share/alsa/firmware/usx2yloader || die
|
|
116 |
if ! use alsa_cards_vx222; then
|
|
117 |
rm -r "${ED}"/lib/firmware/vx || die
|
|
118 |
fi
|
|
119 |
else
|
|
120 |
udev_dorules "${FILESDIR}"/52-usx2yaudio.rules
|
|
121 |
fi
|
|
122 |
|
|
123 |
if ! use alsa_cards_mixart; then
|
|
124 |
rm -r "${ED}"/usr/share/alsa/firmware/mixartloader "${ED}"/lib/firmware/mixart || die
|
|
125 |
fi
|
|
126 |
|
|
127 |
if ! use alsa_cards_hdsp && ! use alsa_cards_hdspm; then
|
|
128 |
rm -r "${ED}"/usr/share/alsa/firmware/hdsploader || die
|
|
129 |
rm "${ED}"/lib/firmware/digiface_firmware{,_rev11}.bin || die
|
|
130 |
rm "${ED}"/lib/firmware/multiface_firmware{,_rev11}.bin || die
|
|
131 |
rm "${ED}"/lib/firmware/rpm_firmware.bin || die
|
|
132 |
fi
|
|
133 |
|
|
134 |
if ! use alsa_cards_asihpi; then
|
|
135 |
rm -r "${ED}"/lib/firmware/asihpi || die
|
|
136 |
fi
|
|
137 |
|
|
138 |
if ! use alsa_cards_sb16; then
|
|
139 |
rm -r "${ED}"/lib/firmware/sb16 || die
|
|
140 |
elif use deduplicate; then
|
|
141 |
rm -r "${ED}"/lib/firmware/sb16 || die
|
|
142 |
fi
|
|
143 |
|
|
144 |
if ! use alsa_cards_korg1212; then
|
|
145 |
rm -r "${ED}"/lib/firmware/korg || die
|
|
146 |
elif use deduplicate; then
|
|
147 |
rm "${ED}"/lib/firmware/korg/k1212.dsp || die
|
|
148 |
fi
|
|
149 |
|
|
150 |
if ! use alsa_cards_maestro3; then
|
|
151 |
rm -r "${ED}"/lib/firmware/ess || die
|
|
152 |
elif use deduplicate; then
|
|
153 |
rm "${ED}"/lib/firmware/ess/maestro3_assp_{kernel,minisrc}.fw || die
|
|
154 |
fi
|
|
155 |
|
|
156 |
if ! use alsa_cards_ymfpci && ! use alsa_cards_wavefront; then
|
|
157 |
rm -r "${ED}"/lib/firmware/yamaha || die
|
|
158 |
elif use deduplicate; then
|
|
159 |
rm -r "${ED}"/lib/firmware/yamaha || die
|
|
160 |
fi
|
|
161 |
|
|
162 |
if ! use alsa_cards_msnd-pinnacle; then
|
|
163 |
rm -r "${ED}"/lib/firmware/turtlebeach || die
|
|
164 |
fi
|
|
165 |
|
|
166 |
if ! use alsa_cards_aica; then
|
|
167 |
rm "${ED}"/lib/firmware/aica_firmware.bin || die
|
|
168 |
fi
|
|
169 |
|
|
170 |
if ! use alsa_cards_ca0132; then
|
|
171 |
rm "${ED}"/lib/firmware/ctspeq.bin || die
|
|
172 |
rm "${ED}"/lib/firmware/ctefx{,-desktop,-r3di}.bin || die
|
|
173 |
elif use deduplicate; then
|
|
174 |
rm "${ED}"/lib/firmware/ctspeq.bin || die
|
|
175 |
rm "${ED}"/lib/firmware/ctefx.bin || die
|
|
176 |
fi
|
|
177 |
|
|
178 |
if ! use alsa_cards_cs46xx; then
|
|
179 |
rm -r "${ED}"/lib/firmware/cs46xx || die
|
|
180 |
fi
|
| 68 |
181 |
|
| 69 |
|
local ea="no"
|
|
182 |
local ea=
|
| 70 |
183 |
for card in ${ECHOAUDIO_CARDS}; do
|
| 71 |
|
use ${card} && ea="yes" && break
|
|
184 |
use ${card} && ea=1 && break
|
| 72 |
185 |
done
|
| 73 |
186 |
|
| 74 |
|
local emu="no"
|
|
187 |
local emu=
|
| 75 |
188 |
for card in ${EMU_CARDS}; do
|
| 76 |
|
use ${card} && emu="yes" && break
|
|
189 |
use ${card} && emu=1 && break
|
| 77 |
190 |
done
|
| 78 |
191 |
|
| 79 |
|
[[ ${ea} == "no" ]] && rm -rf "${ED}"/lib/firmware/ea
|
| 80 |
|
[[ ${emu} == "no" ]] && rm -rf "${ED}"/lib/firmware/emu
|
|
192 |
if [[ ! ${ea} ]]; then
|
|
193 |
rm -r "${ED}"/lib/firmware/ea || die
|
|
194 |
fi
|
|
195 |
if [[ ! ${emu} ]]; then
|
|
196 |
rm -r "${ED}"/lib/firmware/emu || die
|
|
197 |
fi
|
|
198 |
|
|
199 |
# Copied from sys-kernel/linux-firmware
|
|
200 |
if use compress-xz; then
|
|
201 |
find "${ED}"/lib/firmware -type f -exec \
|
|
202 |
xz --compress --quiet --check=crc32 "{}" \; || die
|
|
203 |
elif use compress-zstd; then
|
|
204 |
find "${ED}"/lib/firmware -type f -exec \
|
|
205 |
zstd --compress --quiet --rm "{}" \; || die
|
|
206 |
fi
|
|
207 |
}
|
|
208 |
|
|
209 |
pkg_preinst() {
|
|
210 |
if [[ ! -d "${ED}"/lib/firmware ]]; then
|
|
211 |
ewarn "No firmware files are being installed, is ALSA_CARDS= empty?"
|
|
212 |
ewarn "Please populate ALSA_CARDS with your sound card in make.conf"
|
|
213 |
fi
|
|
214 |
}
|
| 81 |
215 |
|
| 82 |
|
use alsa_cards_usb-usx2y && udev_dorules "${FILESDIR}"/52-usx2yaudio.rules
|
|
216 |
pkg_postinst() {
|
|
217 |
udev_reload
|
|
218 |
if use alsa_cards_msnd-pinnacle; then
|
|
219 |
einfo "Please download the actual firmware files from:"
|
|
220 |
einfo " ftp://ftp.voyetra.com/pub/tbs/msndcl/msndvkit.zip"
|
|
221 |
einfo " ftp://ftp.voyetra.com/pub/tbs/pinn/pnddk100.zip"
|
|
222 |
einfo "and copy them to /etc/sound/. Registration required."
|
|
223 |
einfo
|
|
224 |
einfo "See also: https://www.kernel.org/doc/Documentation/sound/oss/MultiSound"
|
|
225 |
fi
|
| 83 |
226 |
}
|