Initial commit
This commit is contained in:
@@ -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
|
||||
@@ -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"]
|
||||
Reference in New Issue
Block a user