pkgname=linux-firmware
pkgver=20250808
pkgdesc="Firmware files for Linux"
homepage="https://gitlab.com/kernel-firmware/linux-firmware"
license=("GPL-2" "GPL-2+" "GPL-3" "BSD" "MIT" "MPL-1.1" "linux-fw-redistributable")
arch=(any)
sources=("${pkgname}-${pkgver}.tar.xz"
  "linux-firmware-copy-firmware-r9.patch"
)
urls=("https://mirrors.edge.kernel.org/pub/linux/kernel/firmware/${sources[0]}"
  "linux-firmware-copy-firmware-r9.patch"
)
md5sums=("e908a4b3f2247fe895f4411d0240f780"
  "01969acb02d879f90a2656da32988c0b"
)
options=(!strip)

src_prepare() {
  tar -xf ${distdir}/${sources[0]} --strip-components=1
  # from Gentoo
  patch -p1 -i ${filedir}/${sources[1]}

  local unknown_license=(
    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
    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
    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
    ositech/Xilinx7OD.bin
    qlogic/isp1000.bin
    myricom/lanai.bin
    yamaha/yss225_registers.bin
    lgs8g75.fw
  )
  echo "Removing files with unknown license ..."
  rm -v -- "${unknown_license[@]}"
}

src_install() {
  local fwdest="${pkgdir}/lib/firmware"
  mkdir -pv "${fwdest}"

  ./copy-firmware.sh -v -j1 "${fwdest}"

  pushd "${fwdest}" &>/dev/null
    echo "Removing broken symlinks ..."
    find * -xtype l -print -delete

    find -type d -empty -delete
  popd &>/dev/null

  install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
}

# vim:ft=sh syn=sh et sw=2:
