sys-kernel/linux-firmware: Version bump

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Mike Pagano <mpagano@gentoo.org>
This commit is contained in:
Mike Pagano
2021-10-29 15:44:43 -04:00
parent 2845ab331f
commit eeea43ab6c
2 changed files with 355 additions and 0 deletions

View File

@@ -6,3 +6,4 @@ DIST linux-firmware-20210629.tar.gz 333073746 BLAKE2B 89a0448dc471ff0c3edfa37b2a
DIST linux-firmware-20210716.tar.gz 333073746 BLAKE2B 89a0448dc471ff0c3edfa37b2a34bbe9f52d7c7e1fe416bea1121bd0248614e28672ef26b78dc7570cd6b949b9b8628492e9ee023eefd4fa49c7206146cc8e8a SHA512 1bc206ea691e3a17994150e3827251d539f1e77f44afc452f45129455f1c9d0c3563add95ffa5306c5c49b6dcff031c293e755e08a0329a2b094de786d8330b8
DIST linux-firmware-20210818.tar.xz 172748332 BLAKE2B faf2ad6754bb72e3838aa21d5f2bc2ba49b98966a66fec04ecc5e0e2669fbbd4830820239290e12d2327f361df9084e350668befb8babfc517a5d06d2916dce9 SHA512 ce8d80794476a07740e2a0c62bf5b9a88d392e27285ba490813bf52c4b2b17cf26f24f43bc56673b8f7a11d7b204263ba9e0e8702ff8bf0a79f8478e0eb8efdc
DIST linux-firmware-20210919.tar.xz 177975728 BLAKE2B 00e756cf15fa84fc079207de3563215b8c233f08013ecd0f530c680d15650f59e69b4af432774e44669bfd322d180b06dd60fdad9abd6df7827b07a9a400fc55 SHA512 ce500c459aca70a1c47eed6e36d145ec53f0f96c3d794524d9fea4d57494fdc33af47181489e2514ad2e1996070eef809088dfaa2508da3a6b67cb986c551e8b
DIST linux-firmware-20211027.tar.xz 183341500 BLAKE2B 6ec0d13fbc5fb5a8570852baf343204d079fcf682a95c9ad66dde5a5b7a7e439bc7f5eb45cc94fd5ec5db0011e217df0e887e7c0e247a8673a8f6b5b9939feb8 SHA512 7f1a900e717c2bd45f175123dc8e5b81fc57f62d766703fde56875b17df70c8e239603cadf28e2b4d1683b4d0d033b60ac9ac8eea3fcf6ee8d22a7f66d0f2e45

View File

@@ -0,0 +1,354 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit mount-boot savedconfig
# In case this is a real snapshot, fill in commit below.
# For normal, tagged releases, leave blank
MY_COMMIT=""
if [[ ${PV} == 99999999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/${PN}.git"
else
if [[ -n "${MY_COMMIT}" ]]; then
SRC_URI="https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${MY_COMMIT}"
else
SRC_URI="https://mirrors.edge.kernel.org/pub/linux/kernel/firmware/${P}.tar.xz"
fi
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
fi
DESCRIPTION="Linux firmware files"
HOMEPAGE="https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git"
LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 )
redistributable? (
linux-fw-redistributable ( BSD-2 BSD BSD-4 ISC MIT no-source-code ) )
unknown-license? ( all-rights-reserved )"
SLOT="0"
IUSE="initramfs +redistributable savedconfig unknown-license"
REQUIRED_USE="initramfs? ( redistributable )"
RESTRICT="binchecks strip test
unknown-license? ( bindist )"
BDEPEND="initramfs? ( app-arch/cpio )"
#add anything else that collides to this
RDEPEND="!savedconfig? (
redistributable? (
!sys-firmware/alsa-firmware[alsa_cards_ca0132]
!sys-block/qla-fc-firmware
!sys-firmware/iwl1000-ucode
!sys-firmware/iwl6005-ucode
!sys-firmware/iwl6030-ucode
!sys-firmware/iwl6050-ucode
!sys-firmware/iwl3160-ucode
!sys-firmware/iwl7260-ucode
!sys-firmware/iwl3160-7260-bt-ucode
!sys-firmware/raspberrypi-wifi-ucode
)
unknown-license? (
!sys-firmware/alsa-firmware[alsa_cards_korg1212]
!sys-firmware/alsa-firmware[alsa_cards_maestro3]
!sys-firmware/alsa-firmware[alsa_cards_sb16]
!sys-firmware/alsa-firmware[alsa_cards_ymfpci]
)
)"
QA_PREBUILT="*"
pkg_pretend() {
use initramfs && mount-boot_pkg_pretend
}
src_unpack() {
if [[ ${PV} == 99999999* ]]; then
git-r3_src_unpack
else
default
# rename directory from git snapshot tarball
if [[ ${#GIT_COMMIT} -gt 8 ]]; then
mv ${PN}-*/ ${P} || die
fi
fi
}
src_prepare() {
default
find . -type f -not -perm 0644 -print0 \
| xargs --null --no-run-if-empty chmod 0644 \
|| die
chmod +x copy-firmware.sh || die
if use initramfs; then
if [[ -d "${S}/amd-ucode" ]]; then
local UCODETMP="${T}/ucode_tmp"
local UCODEDIR="${UCODETMP}/kernel/x86/microcode"
mkdir -p "${UCODEDIR}" || die
echo 1 > "${UCODETMP}/early_cpio"
local amd_ucode_file="${UCODEDIR}/AuthenticAMD.bin"
cat "${S}"/amd-ucode/*.bin > "${amd_ucode_file}" || die "Failed to concat amd cpu ucode"
if [[ ! -s "${amd_ucode_file}" ]]; then
die "Sanity check failed: '${amd_ucode_file}' is empty!"
fi
pushd "${UCODETMP}" &>/dev/null || die
find . -print0 | cpio --quiet --null -o -H newc -R 0:0 > "${S}"/amd-uc.img
popd &>/dev/null || die
if [[ ! -s "${S}/amd-uc.img" ]]; then
die "Failed to create '${S}/amd-uc.img'!"
fi
else
# If this will ever happen something has changed which
# must be reviewed
die "'${S}/amd-ucode' not found!"
fi
fi
# whitelist of misc files
local misc_files=(
copy-firmware.sh
WHENCE
README
)
# whitelist of images with a free software license
local free_software=(
# keyspan_pda (GPL-2+)
keyspan_pda/keyspan_pda.fw
keyspan_pda/xircom_pgs.fw
# dsp56k (GPL-2+)
dsp56k/bootstrap.bin
# ath9k_htc (BSD GPL-2+ MIT)
ath9k_htc/htc_7010-1.4.0.fw
ath9k_htc/htc_9271-1.4.0.fw
# pcnet_cs, 3c589_cs, 3c574_cs, serial_cs (dual GPL-2/MPL-1.1)
cis/LA-PCM.cis
cis/PCMLM28.cis
cis/DP83903.cis
cis/NE2K.cis
cis/tamarack.cis
cis/PE-200.cis
cis/PE520.cis
cis/3CXEM556.cis
cis/3CCFEM556.cis
cis/MT5634ZLX.cis
cis/RS-COM-2P.cis
cis/COMpad2.cis
cis/COMpad4.cis
# serial_cs (GPL-3)
cis/SW_555_SER.cis
cis/SW_7xx_SER.cis
cis/SW_8xx_SER.cis
# dvb-ttpci (GPL-2+)
av7110/bootcode.bin
# usbdux, usbduxfast, usbduxsigma (GPL-2+)
usbdux_firmware.bin
usbduxfast_firmware.bin
usbduxsigma_firmware.bin
# brcmfmac (GPL-2+)
brcm/brcmfmac4330-sdio.Prowise-PT301.txt
brcm/brcmfmac43340-sdio.meegopad-t08.txt
brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt
brcm/brcmfmac43362-sdio.lemaker,bananapro.txt
brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt
"brcm/brcmfmac43430a0-sdio.ONDA-V80 PLUS.txt"
brcm/brcmfmac43430-sdio.AP6212.txt
brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
brcm/brcmfmac43430-sdio.MUR1DX.txt
brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
brcm/brcmfmac4356-pcie.gpd-win-pocket.txt
# isci (GPL-2)
isci/isci_firmware.bin
# carl9170 (GPL-2+)
carl9170-1.fw
# atusb (GPL-2+)
atusb/atusb-0.2.dfu
atusb/atusb-0.3.dfu
atusb/rzusb-0.3.bin
# mlxsw_spectrum (dual BSD/GPL-2)
mellanox/mlxsw_spectrum-13.1420.122.mfa2
mellanox/mlxsw_spectrum-13.1530.152.mfa2
mellanox/mlxsw_spectrum-13.1620.192.mfa2
mellanox/mlxsw_spectrum-13.1702.6.mfa2
mellanox/mlxsw_spectrum-13.1703.4.mfa2
mellanox/mlxsw_spectrum-13.1910.622.mfa2
mellanox/mlxsw_spectrum-13.2000.1122.mfa2
)
# blacklist of images with unknown license
local unknown_license=(
atmsar11.fw
korg/k1212.dsp
ess/maestro3_assp_kernel.fw
ess/maestro3_assp_minisrc.fw
yamaha/ds1_ctrl.fw
yamaha/ds1_dsp.fw
yamaha/ds1e_ctrl.fw
tr_smctr.bin
ttusb-budget/dspbootcode.bin
emi62/bitstream.fw
emi62/loader.fw
emi62/midi.fw
emi62/spdif.fw
ti_3410.fw
ti_5052.fw
mts_mt9234mu.fw
mts_mt9234zba.fw
whiteheat.fw
whiteheat_loader.fw
intelliport2.bin
cpia2/stv0672_vp4.bin
vicam/firmware.fw
edgeport/boot.fw
edgeport/boot2.fw
edgeport/down.fw
edgeport/down2.fw
edgeport/down3.bin
sb16/mulaw_main.csp
sb16/alaw_main.csp
sb16/ima_adpcm_init.csp
sb16/ima_adpcm_playback.csp
sb16/ima_adpcm_capture.csp
sun/cassini.bin
acenic/tg1.bin
acenic/tg2.bin
adaptec/starfire_rx.bin
adaptec/starfire_tx.bin
yam/1200.bin
yam/9600.bin
3com/3C359.bin
ositech/Xilinx7OD.bin
qlogic/isp1000.bin
myricom/lanai.bin
yamaha/yss225_registers.bin
lgs8g75.fw
)
if use !unknown-license; then
einfo "Removing files with unknown license ..."
rm -v "${unknown_license[@]}" || die
fi
if use !redistributable; then
# remove files _not_ in the free_software or unknown_license lists
# everything else is confirmed (or assumed) to be redistributable
# based on upstream acceptance policy
einfo "Removing non-redistributable files ..."
local OLDIFS="${IFS}"
local IFS=$'\n'
set -o pipefail
find ! -type d -printf "%P\n" \
| grep -Fvx -e "${misc_files[*]}" -e "${free_software[*]}" -e "${unknown_license[*]}" \
| xargs -d '\n' --no-run-if-empty rm -v
[[ ${?} -ne 0 ]] && die "Failed to remove non-redistributable files"
IFS="${OLDIFS}"
fi
restore_config ${PN}.conf
}
src_install() {
./copy-firmware.sh -v "${ED}/lib/firmware" || die
pushd "${ED}/lib/firmware" &>/dev/null || die
# especially use !redistributable will cause some broken symlinks
einfo "Removing broken symlinks ..."
find * -xtype l -print -delete || die
if use savedconfig; then
if [[ -s "${S}/${PN}.conf" ]]; then
local files_to_keep="${T}/files_to_keep.lst"
grep -v '^#' "${S}/${PN}.conf" 2>/dev/null > "${files_to_keep}" || die
[[ -s "${files_to_keep}" ]] || die "grep failed, empty config file?"
einfo "Applying USE=savedconfig; Removing all files not listed in config ..."
find ! -type d -printf "%P\n" \
| grep -Fvx -f "${files_to_keep}" \
| xargs -d '\n' --no-run-if-empty rm -v
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
die "Find failed to print installed files"
elif [[ ${PIPESTATUS[1]} -eq 2 ]]; then
# grep returns exit status 1 if no lines were selected
# which is the case when we want to keep all files
die "Grep failed to select files to keep"
elif [[ ${PIPESTATUS[2]} -ne 0 ]]; then
die "Failed to remove files not listed in config"
fi
fi
fi
# remove empty directories, bug #396073
find -type d -empty -delete || die
# sanity check
if ! ( shopt -s failglob; : * ) 2>/dev/null; then
eerror "No files to install. Check your USE flag settings"
eerror "and the list of files in your saved configuration."
die "Refusing to install an empty package"
fi
# create config file
echo "# Remove files that shall not be installed from this list." > "${S}"/${PN}.conf || die
find * ! -type d >> "${S}"/${PN}.conf || die
save_config "${S}"/${PN}.conf
popd &>/dev/null || die
if use initramfs ; then
insinto /boot
doins "${S}"/amd-uc.img
fi
}
pkg_preinst() {
if use savedconfig; then
ewarn "USE=savedconfig is active. You must handle file collisions manually."
fi
# Make sure /boot is available if needed.
use initramfs && mount-boot_pkg_preinst
}
pkg_postinst() {
elog "If you are only interested in particular firmware files, edit the saved"
elog "configfile and remove those that you do not want."
local ver
for ver in ${REPLACING_VERSIONS}; do
if ver_test ${ver} -lt 20190514; then
elog
elog 'Starting with version 20190514, installation of many firmware'
elog 'files is controlled by USE flags. Please review your USE flag'
elog 'and package.license settings if you are missing some files.'
break
fi
done
# Don't forget to umount /boot if it was previously mounted by us.
use initramfs && mount-boot_pkg_postinst
}
pkg_prerm() {
# Make sure /boot is mounted so that we can remove /boot/amd-uc.img!
use initramfs && mount-boot_pkg_prerm
}
pkg_postrm() {
# Don't forget to umount /boot if it was previously mounted by us.
use initramfs && mount-boot_pkg_postrm
}