Initial commit

This commit is contained in:
2026-03-21 12:43:00 -05:00
commit 83bf16823c
438 changed files with 33617 additions and 0 deletions
+255
View File
@@ -0,0 +1,255 @@
#!/bin/sh
set -eu
other_destdir() {
printf '%s\n' "${DEPOT_SUBDESTDIR_LINUX_FIRMWARE_OTHER:?build.sh: DEPOT_SUBDESTDIR_LINUX_FIRMWARE_OTHER is not set}"
}
require_destdir() {
printf '%s\n' "${DESTDIR:?build.sh: DESTDIR is not set}"
}
move_from_other() {
pkg=$1
shift
srcroot=$(other_destdir)
destroot=$(require_destdir)
moved=0
for pattern in "$@"; do
set -- "$srcroot"/$pattern
for src in "$@"; do
[ -e "$src" ] || [ -L "$src" ] || continue
rel=${src#$srcroot/}
dst=$destroot/$rel
mkdir -p "$(dirname "$dst")"
rm -rf "$dst"
mv "$src" "$dst"
moved=1
done
done
[ "$moved" -eq 1 ] || {
echo "build.sh: no matches moved from linux-firmware-other for $pkg" >&2
exit 1
}
}
dedup_current_firmware() {
destdir=$(require_destdir)
[ -d "$destdir/usr/lib/firmware" ] || return 0
make -C . \
DESTDIR="$destdir" \
FIRMWAREDIR=/usr/lib/firmware \
dedup
}
build_amd_ucode_img() {
mkdir -p kernel/x86/microcode
rm -f kernel/x86/microcode/AuthenticAMD.bin amd-ucode.img
find amd-ucode -maxdepth 1 -type f -name 'microcode_amd*.bin' | LC_ALL=C sort |
while IFS= read -r blob; do
cat "$blob" >> kernel/x86/microcode/AuthenticAMD.bin
done
[ -s kernel/x86/microcode/AuthenticAMD.bin ] || {
echo "build.sh: failed to assemble AuthenticAMD.bin" >&2
exit 1
}
printf '%s\0' 'kernel/x86/microcode/AuthenticAMD.bin' |
cpio --null -o -H newc --quiet > amd-ucode.img
}
install_whence_payload() {
destdir=$(require_destdir)
mkdir -p "$destdir/usr/share/licenses/linux-firmware"
for file in WHENCE LICENSE* LICENCE* COPYING*; do
[ -e "$file" ] || continue
install -m644 "$file" "$destdir/usr/share/licenses/linux-firmware/${file##*/}"
done
}
depot_build() {
build_amd_ucode_img
}
depot_install_linux_firmware_whence() {
install_whence_payload
}
depot_install_linux_firmware_other() {
destdir=$(require_destdir)
env ZSTD_CLEVEL=19 MAKEFLAGS= \
make -C . \
DESTDIR="$destdir" \
FIRMWAREDIR=/usr/lib/firmware \
install-zst
}
depot_install_amd_ucode() {
destdir=$(require_destdir)
move_from_other amd-ucode \
'usr/lib/firmware/amd-ucode' \
'usr/lib/firmware/amd-ucode/*'
dedup_current_firmware
install -Dm644 amd-ucode.img "$destdir/boot/amd-ucode.img"
}
depot_install_linux_firmware_amdgpu() {
move_from_other linux-firmware-amdgpu \
'usr/lib/firmware/amdgpu' \
'usr/lib/firmware/amdgpu/*'
dedup_current_firmware
}
depot_install_linux_firmware_atheros() {
move_from_other linux-firmware-atheros \
'usr/lib/firmware/ar[0-9]*' \
'usr/lib/firmware/ath*' \
'usr/lib/firmware/carl9170*' \
'usr/lib/firmware/htc_*' \
'usr/lib/firmware/qca' \
'usr/lib/firmware/qca/*' \
'usr/lib/firmware/wil6210*'
dedup_current_firmware
}
depot_install_linux_firmware_broadcom() {
move_from_other linux-firmware-broadcom \
'usr/lib/firmware/bnx2*' \
'usr/lib/firmware/brcm' \
'usr/lib/firmware/brcm/*' \
'usr/lib/firmware/cypress' \
'usr/lib/firmware/cypress/*' \
'usr/lib/firmware/tigon'
dedup_current_firmware
}
depot_install_linux_firmware_cirrus() {
move_from_other linux-firmware-cirrus \
'usr/lib/firmware/cirrus' \
'usr/lib/firmware/cirrus/*' \
'usr/lib/firmware/cs42l43*'
dedup_current_firmware
}
depot_install_linux_firmware_intel() {
move_from_other linux-firmware-intel \
'usr/lib/firmware/e100' \
'usr/lib/firmware/e100/*' \
'usr/lib/firmware/hfi1_*' \
'usr/lib/firmware/i915' \
'usr/lib/firmware/i915/*' \
'usr/lib/firmware/intel' \
'usr/lib/firmware/intel/*' \
'usr/lib/firmware/isci' \
'usr/lib/firmware/isci/*' \
'usr/lib/firmware/iwlwifi*' \
'usr/lib/firmware/ixp4xx' \
'usr/lib/firmware/ixp4xx/*' \
'usr/lib/firmware/qat_*' \
'usr/lib/firmware/xe' \
'usr/lib/firmware/xe/*'
dedup_current_firmware
}
depot_install_linux_firmware_liquidio() {
move_from_other linux-firmware-liquidio \
'usr/lib/firmware/liquidio' \
'usr/lib/firmware/liquidio/*'
dedup_current_firmware
}
depot_install_linux_firmware_marvell() {
move_from_other linux-firmware-marvell \
'usr/lib/firmware/libertas' \
'usr/lib/firmware/libertas/*' \
'usr/lib/firmware/mwl8k' \
'usr/lib/firmware/mwl8k/*' \
'usr/lib/firmware/mwlwifi' \
'usr/lib/firmware/mwlwifi/*' \
'usr/lib/firmware/mrvl' \
'usr/lib/firmware/mrvl/*'
dedup_current_firmware
}
depot_install_linux_firmware_mediatek() {
move_from_other linux-firmware-mediatek \
'usr/lib/firmware/mediatek' \
'usr/lib/firmware/mediatek/*' \
'usr/lib/firmware/mt7*' \
'usr/lib/firmware/vpu_*' \
'usr/lib/firmware/rt[237]*'
dedup_current_firmware
}
depot_install_linux_firmware_mellanox() {
move_from_other linux-firmware-mellanox \
'usr/lib/firmware/mellanox' \
'usr/lib/firmware/mellanox/*'
dedup_current_firmware
}
depot_install_linux_firmware_nfp() {
move_from_other linux-firmware-nfp \
'usr/lib/firmware/netronome' \
'usr/lib/firmware/netronome/*'
dedup_current_firmware
}
depot_install_linux_firmware_nvidia() {
move_from_other linux-firmware-nvidia \
'usr/lib/firmware/nvidia' \
'usr/lib/firmware/nvidia/*'
dedup_current_firmware
}
depot_install_linux_firmware_qcom() {
move_from_other linux-firmware-qcom \
'usr/lib/firmware/qcom' \
'usr/lib/firmware/qcom/*' \
'usr/lib/firmware/a300_*'
dedup_current_firmware
}
depot_install_linux_firmware_qlogic() {
move_from_other linux-firmware-qlogic \
'usr/lib/firmware/qlogic' \
'usr/lib/firmware/qlogic/*' \
'usr/lib/firmware/qed' \
'usr/lib/firmware/qed/*' \
'usr/lib/firmware/ql2???_*' \
'usr/lib/firmware/cbfw-*' \
'usr/lib/firmware/ctfw-*' \
'usr/lib/firmware/ct2fw-*'
dedup_current_firmware
}
depot_install_linux_firmware_radeon() {
move_from_other linux-firmware-radeon \
'usr/lib/firmware/radeon' \
'usr/lib/firmware/radeon/*'
dedup_current_firmware
}
depot_install_linux_firmware_realtek() {
move_from_other linux-firmware-realtek \
'usr/lib/firmware/realtek' \
'usr/lib/firmware/realtek/*' \
'usr/lib/firmware/rtlwifi' \
'usr/lib/firmware/rtlwifi/*' \
'usr/lib/firmware/rtw8*' \
'usr/lib/firmware/rtl_*'
dedup_current_firmware
}
@@ -0,0 +1,18 @@
diff --git a/copy-firmware.sh b/copy-firmware.sh
index 6a32127..7c1821e 100755
--- a/copy-firmware.sh
+++ b/copy-firmware.sh
@@ -164,9 +164,10 @@ if [ "$num_jobs" -gt 1 ]; then
parallel -j"$num_jobs" -a "$parallel_args_file"
fi
-# Verify no broken symlinks
-if test "$(find "$destdir" -xtype l | wc -l)" -ne 0 ; then
- err "Broken symlinks found:\n$(find "$destdir" -xtype l)"
+# Verify no broken symlinks without relying on non-portable find -xtype.
+broken_links=$(find "$destdir" -type l ! -exec test -e {} \; -print)
+if test -n "$broken_links"; then
+ err "Broken symlinks found:\n$broken_links"
fi
exit 0
+245
View File
@@ -0,0 +1,245 @@
[package]
name = "linux-firmware"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Default set"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "CC0-1.0"
[[packages]]
name = "linux-firmware-whence"
version = "20260309"
revision = 1
description = "Firmware files for Linux - WHENCE file (vendor licenses)"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-WHENCE"
[[packages]]
name = "linux-firmware-other"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Unsorted firmware for various devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-WHENCE"
[[packages]]
name = "amd-ucode"
version = "20260309"
revision = 1
description = "Microcode update image for AMD CPUs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-amd-ucode"
[[packages]]
name = "linux-firmware-amdgpu"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for AMD Radeon GPUs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["LicenseRef-amdgpu", "MIT"]
[[packages]]
name = "linux-firmware-atheros"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Qualcomm Atheros WiFi and Bluetooth adapters"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["GPL-2.0-only", "LicenseRef-atheros"]
[[packages]]
name = "linux-firmware-broadcom"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Broadcom and Cypress network adapters"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-broadcom"
[[packages]]
name = "linux-firmware-cirrus"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Cirrus Logic audio devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-cirrus"
[[packages]]
name = "linux-firmware-intel"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Intel devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["Apache-2.0", "GPL-2.0-only", "LicenseRef-intel"]
[[packages]]
name = "linux-firmware-liquidio"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Cavium LiquidIO server adapters"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-liquidio"
[[packages]]
name = "linux-firmware-marvell"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Marvell devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-marvell"
[[packages]]
name = "linux-firmware-mediatek"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for MediaTek and Ralink devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-mediatek"
[[packages]]
name = "linux-firmware-mellanox"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Mellanox Spectrum switches"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-WHENCE"
[[packages]]
name = "linux-firmware-nfp"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Netronome Flow Processors"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-netronome"
[[packages]]
name = "linux-firmware-nvidia"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-nvidia"
[[packages]]
name = "linux-firmware-qcom"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Qualcomm SoCs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["BSD-3-Clause", "LicenseRef-qcom"]
[[packages]]
name = "linux-firmware-qlogic"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for QLogic devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-qlogic"
[[packages]]
name = "linux-firmware-radeon"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for ATI Radeon GPUs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-radeon"
[[packages]]
name = "linux-firmware-realtek"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Realtek devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-realtek"
[[manual_sources]]
file = "build.sh"
[[source]]
url = "https://gitlab.com/kernel-firmware/linux-firmware.git#$version"
sha256 = "skip"
extract_dir = "$name"
patches = ["linux-firmware-20260309-portable-find-symlink-check.patch"]
[build]
type = "custom"
[build.flags]
no_strip = true
[dependencies]
build = [
"cpio",
"git",
"parallel",
"python",
"rdfind",
]
runtime = [
"linux-firmware-amdgpu",
"linux-firmware-atheros",
"linux-firmware-broadcom",
"linux-firmware-cirrus",
"linux-firmware-intel",
"linux-firmware-mediatek",
"linux-firmware-nvidia",
"linux-firmware-other",
"linux-firmware-radeon",
"linux-firmware-realtek",
]
optional = [
"linux-firmware-liquidio",
"linux-firmware-marvell",
"linux-firmware-mellanox",
"linux-firmware-nfp",
"linux-firmware-qcom",
"linux-firmware-qlogic",
]
[package_dependencies.linux-firmware-amdgpu]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-atheros]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-broadcom]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-cirrus]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-intel]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-liquidio]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-marvell]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-mediatek]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-mellanox]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-nfp]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-nvidia]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-qcom]
runtime = ["linux-firmware-atheros", "linux-firmware-whence"]
[package_dependencies.linux-firmware-qlogic]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-radeon]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-realtek]
runtime = ["linux-firmware-whence"]
[package_alternatives.linux-firmware-broadcom]
provides = ["linux-firmware-bnx2x"]
conflicts = ["linux-firmware-bnx2x"]
replaces = ["linux-firmware-bnx2x<=20250613.12fe085f-4"]