Add sys-kernel/firmware-aa000-0 version 11.0.0-beta.2 ebuild

This commit is contained in:
inference 2023-10-20 23:15:03 +01:00
parent cd3dcd3143
commit 48b59e424f
Signed by: inference
SSH Key Fingerprint: SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc
2 changed files with 312 additions and 0 deletions

View File

@ -3,6 +3,7 @@ DIST firmware-aa000-0-1.0.0.2.tar.gz 1134977 BLAKE2B 0b156145c17982bfe3351c34e96
DIST firmware-aa000-0-10.0.0+11.tar.gz 2320869 BLAKE2B 55d349f6cc8098f028b8088cc5d23880675243366eb4da1d0351b4c1e93886848a25721e9ff496b0749cd65e28ea27113523a58181f0baf3e601eaa8cc660f7d SHA512 c88da5b47e913ec1721ddf23157c1f086c6d472b2d49285508cb7a588b0d3f88248af9cfd4b3f612755f20cd9a57e968a01d8a1128d894a8006612cdd0345bcd
DIST firmware-aa000-0-11.0.0-alpha.1.tar.gz 2321021 BLAKE2B f65e0798893c15aa916aa24f52faa8a01531f1672191e90c24580d21e751aeda1ee65367c11fe530eeca6b48cdcb9a356f59544b67b168aa87c861ccaee2b7fb SHA512 70644b75fdb7337dbad999a19c0ef90987b2b10dc16030b55738b31647dc33515900b352342c0e8014c16213f75080cae7ef64af59dbcde873de70c635987bd3
DIST firmware-aa000-0-11.0.0-beta.1.tar.gz 2320896 BLAKE2B e807e67d93912aa9cc3d9aa71c08b0b419f92368347481a5e229321bfa5e954593cf088b4e73745d879c2d038724c1f439ab666d2d0a42e9d4d792e4be0383e3 SHA512 cc6b5d77cd66266965740020b6796cdeab091cec04141092114480459b653ca3e0543643fe172ea19a730104b6ecd2e342d0898abf75acdc71067f25c5be3ecf
DIST firmware-aa000-0-11.0.0-beta.2.tar.gz 2320912 BLAKE2B 961a2611197ef521e30b4f026eed2ae8f3c0ed3f66c461d5d92a90361d68c96cb4d013335f09ee33ab21721bba52046af5396c5832e883591a4f19ba3d546c39 SHA512 082eb5a7602886f48291cf976cecf633a12708ab9683b7ad2124a1acecc32ffebdfc956a4ec16dd85b4090cc26d8d9f92ef6acac4fc3bfecf6667e257c2abecb
DIST firmware-aa000-0-2.0.0.3.tar.gz 1135197 BLAKE2B ae12354613a2bbf2df87c9fe54fdee6423a89627f0723d04d48eb9942f30343cf95415553ce9949b9048d0be5d6c717c88b85b753eccc5ed805623fb69bee4c3 SHA512 9efb1fab12adc07b73c0fbf46957786f17d50da1330b400fe77a3cdfad7390aef23f97b12c96eca754ad826c1594d40a163737c09c802d2be1bcf134b38f5622
DIST firmware-aa000-0-3.0.0.4.tar.gz 1135177 BLAKE2B 275435d68a42df39e6680d0c368e7607c9f570f08bd627eae415ef557572b09a82e750ad65383ad9bc020edac4de3637c855cb4f696ba38338cb0be38bf74d0c SHA512 435b95a205c97e71827175bf18608f271669174666ca17feb45b5c47f3cf674639b0e84e422811b887c4645f6a80d276539833b10d91521a9f70ac9c7a6ad88d
DIST firmware-aa000-0-4.0.0.5.tar.gz 1140913 BLAKE2B 664c6645e77e5246f995639263cf19657a652811dc9168a6636137a9f7e9251b1c17ea1007317be7c39e034576266a02a5ad06ab753cee6c6238baecd005e249 SHA512 2a9d449078fe09cc71a1db3f9f2ccf21da2c788e39d3202ad8c08d9eb09de74cccaf6b97f89b57b6d6fe305d9d8b795201e948a8ba2de454f71e5a477128b27e

View File

@ -0,0 +1,311 @@
# Copyright 1999 Gentoo Authors, 2022 Jake Winters
# SPDX-License-Identifier: GPL-2.0-only
EAPI=8
inherit linux-info mount-boot savedconfig multiprocessing
DESCRIPTION="Inferencium system aa000-0 firmware."
HOMEPAGE="https://src.inferencium.net/Inferencium/firmware-aa000-0.git"
SRC_URI="https://src.inferencium.net/Inferencium/firmware-aa000-0/archive/firmware-aa000-0-11.0.0-beta.2.tar.gz"
## WORKDIR must use actual name of the tagged package directory; Portage package name limitations
## prevent actual package name from being used
S="${WORKDIR}/firmware-aa000-0"
KEYWORDS="amd64"
SLOT="0"
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 )"
IUSE="compress initramfs +redistributable savedconfig unknown-license"
REQUIRED_USE="initramfs? ( redistributable )"
RESTRICT="binchecks strip test
unknown-license? ( bindist )"
BDEPEND="initramfs? ( app-arch/cpio )"
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/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_setup() {
if ! use compress ; then
return
fi
local CONFIG_CHECK="~FW_LOADER_COMPRESS"
linux-info_pkg_setup
}
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
)
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
if use compress ; then
while IFS= read -r -d '' f; do
target=$(readlink "${f}")
ln -sf "${target}".xz "${f}" || die
mv "${f}" "${f}".xz || die
done < <(find . -type l -print0) || die
find . -type f ! -path "./amd-ucode/*" -print0 | \
xargs -0 -P $(makeopts_jobs) -I'{}' xz -T1 -C crc32 '{}' || die
fi
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
# Fix 'symlink is blocked by a directory' Bug #871315
if has_version "<${CATEGORY}/${PN}-20220913-r2" ; then
rm -rf "${EROOT}"/lib/firmware/qcom/LENOVO/21BX
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
}