diff options
Diffstat (limited to 'linux-firmware-blob/PKGBUILD')
-rwxr-xr-x | linux-firmware-blob/PKGBUILD | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/linux-firmware-blob/PKGBUILD b/linux-firmware-blob/PKGBUILD new file mode 100755 index 0000000..bfafa38 --- /dev/null +++ b/linux-firmware-blob/PKGBUILD @@ -0,0 +1,162 @@ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: Thomas Bächler <thomas@archlinux.org> + +pkgbase=linux-firmware +pkgname=(linux-firmware-whence linux-firmware + linux-firmware-{nfp,mellanox,marvell,qcom,liquidio,qlogic,bnx2x} +) +_tag=20241017 +#_commit=c979a06518069901e4c43e0019d3a15b435b7e16 +pkgver=202209 +pkgrel=1 +pkgdesc="Firmware files for Linux" +url="https://gitlab.com/kernel-firmware/linux-firmware" +license=( + GPL-2.0-only + GPL-2.0-or-later + GPL-3.0-only + custom +) +arch=('any') +makedepends=( + rdfind + python +) +options=( + !strip + !debug +) +source=("linux-firmware.tar.gz") + +validpgpkeys=('4CDE8575E547BF835FE15807A31B6BD72486CFD6') # Josh Boyer <jwboyer@fedoraproject.org> + +build() { + mkdir -p kernel/x86/microcode + cat ${pkgbase}/amd-ucode/microcode_amd*.bin > kernel/x86/microcode/AuthenticAMD.bin + + # Reproducibility: set the timestamp on the bin file + if [[ -n ${SOURCE_DATE_EPOCH} ]]; then + touch -d @${SOURCE_DATE_EPOCH} kernel/x86/microcode/AuthenticAMD.bin + fi + + # Reproducibility: strip the inode and device numbers from the cpio archive + echo kernel/x86/microcode/AuthenticAMD.bin | + bsdtar --uid 0 --gid 0 -cnf - -T - | + bsdtar --null -cf - --format=newc @- > amd-ucode.img +} + +_pick() { + local p="$1" f d; shift + for f; do + d="$srcdir/$p/${f#$pkgdir/}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done +} + +package_linux-firmware-whence() { + pkgdesc+=" - contains the WHENCE license file which documents the vendor license details" + + install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 ${pkgbase}/WHENCE +} + +package_linux-firmware() { + depends=('linux-firmware-whence') + + cd "${pkgbase}" + + make ${MAKEFLAGS} DESTDIR="${pkgdir}" install + + install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 LICEN* + + cd "${pkgdir}" + + # remove arm64 firmware https://bugs.archlinux.org/task/76583 + rm lib/firmware/mrvl/prestera/mvsw_prestera_fw-v2.0.img + rm lib/firmware/mrvl/prestera/mvsw_prestera_fw-v3.0.img + rm lib/firmware/mrvl/prestera/mvsw_prestera_fw-v4.0.img + + # split + _pick amd-ucode lib/firmware/amd-ucode + + _pick linux-firmware-nfp lib/firmware/netronome + _pick linux-firmware-nfp usr/share/licenses/${pkgname}/LICENCE.Netronome + + _pick linux-firmware-mellanox lib/firmware/mellanox + + _pick linux-firmware-marvell lib/firmware/{libertas,mwl8k,mwlwifi,mrvl} + _pick linux-firmware-marvell usr/share/licenses/${pkgname}/LICENCE.{Marvell,NXP} + + _pick linux-firmware-qcom lib/firmware/{qcom,a300_*} + _pick linux-firmware-qcom usr/share/licenses/${pkgname}/LICENSE.qcom* + + _pick linux-firmware-liquidio lib/firmware/liquidio + _pick linux-firmware-liquidio usr/share/licenses/${pkgname}/LICENCE.cavium_liquidio + + _pick linux-firmware-qlogic lib/firmware/{qlogic,qed,ql2???_*,c{b,t,t2}fw-*} + _pick linux-firmware-qlogic usr/share/licenses/${pkgname}/LICENCE.{qla1280,qla2xxx} + + _pick linux-firmware-bnx2x lib/firmware/bnx2x* +} + +# package_amd-ucode() { +# pkgdesc="Microcode update image for AMD CPUs" +# license=(custom) + +# mv -v $pkgname/* "$pkgdir" + +# install -Dt "${pkgdir}/boot" -m644 amd-ucode.img + +# install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 ${pkgbase}/LICENSE.amd-ucode +# } + +package_linux-firmware-nfp() { + pkgdesc+=" - nfp / Firmware for Netronome Flow Processors" + depends=('linux-firmware-whence') + + mv -v linux-firmware-nfp/* "${pkgdir}" +} + +package_linux-firmware-mellanox() { + pkgdesc+=" - mellanox / Firmware for Mellanox Spectrum switches" + depends=('linux-firmware-whence') + + mv -v linux-firmware-mellanox/* "${pkgdir}" +} + +package_linux-firmware-marvell() { + pkgdesc+=" - marvell / Firmware for Marvell devices" + depends=('linux-firmware-whence') + + mv -v linux-firmware-marvell/* "${pkgdir}" +} + +package_linux-firmware-qcom() { + pkgdesc+=" - qcom / Firmware for Qualcomm SoCs" + depends=('linux-firmware-whence') + + mv -v linux-firmware-qcom/* "${pkgdir}" +} + +package_linux-firmware-liquidio() { + pkgdesc+=" - liquidio / Firmware for Cavium LiquidIO server adapters" + depends=('linux-firmware-whence') + + mv -v linux-firmware-liquidio/* "${pkgdir}" +} + +package_linux-firmware-qlogic() { + pkgdesc+=" - qlogic / Firmware for QLogic devices" + depends=('linux-firmware-whence') + + mv -v linux-firmware-qlogic/* "${pkgdir}" +} + +package_linux-firmware-bnx2x() { + pkgdesc+=" - bnx2x / Firmware for Broadcom NetXtreme II 10Gb ethernet adapters" + depends=('linux-firmware-whence') + + mv -v linux-firmware-bnx2x/* "${pkgdir}" +} +sha512sums=('8cf9b078a803f1b9a3b9f3b31c88161b480649c798ee12b29e448cac9f24518c740c5aeb3eceb29400ba731ee472205e74d3bdf560dc9a5591dfc53682872abe') |