Name linux-firmware-qlogic
Description Firmware files for Linux - Firmware for QLogic devices
Version 20260221-1
Package Base linux-firmware
Homepage https://gitlab.com/kernel-firmware/linux-firmware
Maintainers ['Tobias Powalowski <tpowa@archlinux.org>']
Contributors ['Thomas Bächler <thomas@archlinux.org>']
Distro-repo https://gitlab.archlinux.org/archlinux/packaging/packages/linux-firmware
Sources ['git+https://gitlab.com/kernel-firmware/linux-firmware.git?signed#tag=20260221']
Dependencies ['linux-firmware-whence']
Optional-Dependencies []
Build-Dependencies ['git', 'parallel', 'python', 'rdfind']
Provides []
Builddate 21-02-2026 21:18:41
Architecture any
Distro-Version
Licenses ['LicenseRef-WHENCE', 'LicenseRef-qlogic']
Hash 842b8bb67edc3733f36dde2aedb8c83a63bb2af90d02721b93fe92b38d246786
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Bächler <thomas@archlinux.org>

pkgbase=linux-firmware
pkgname=(
  linux-firmware
  linux-firmware-whence
  linux-firmware-other

  # Splits
  amd-ucode
  linux-firmware-amdgpu
  linux-firmware-atheros
  linux-firmware-broadcom
  linux-firmware-cirrus
  linux-firmware-intel
  linux-firmware-liquidio
  linux-firmware-marvell
  linux-firmware-mediatek
  linux-firmware-mellanox
  linux-firmware-nfp
  linux-firmware-nvidia
  linux-firmware-qcom
  linux-firmware-qlogic
  linux-firmware-radeon
  linux-firmware-realtek
)
pkgver=20260221
pkgrel=1
pkgdesc="Firmware files for Linux"
url="https://gitlab.com/kernel-firmware/linux-firmware"
license=(LicenseRef-WHENCE)
arch=(any)
makedepends=(
  git
  parallel
  python
  rdfind
)
options=(
  !debug
  !strip
)
source=("git+$url.git?signed#tag=${pkgver}")
b2sums=('9f79e1e8ea3b39f7b64ccabac1b300b775c486438cd2bb5b3795b71cf60c1b9212e29462c29db3132d96826aa3871667362401ecaedec2f84139ecc87ba25125')
validpgpkeys=(
  4CDE8575E547BF835FE15807A31B6BD72486CFD6 # Josh Boyer <jwboyer@fedoraproject.org>
)

_backports=(
)

_reverts=(
)

prepare() {
  cd ${pkgbase}

  local c
  for c in "${_backports[@]}"; do
    echo Backporting $(git log --oneline -1 "${c}")
    git cherry-pick -n "${c}"
  done
  for c in "${_reverts[@]}"; do
    echo Reverting $(git log --oneline -1 "${c}")
    git revert -n "${c}"
  done
}

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() {
  pkgdesc+=" - Default set"
  license=(CC0-1.0)
  depends=(
    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
  )
  optdepends=(
    'linux-firmware-liquidio: Firmware for Cavium LiquidIO server adapters'
    'linux-firmware-marvell: Firmware for Marvell devices'
    'linux-firmware-mellanox: Firmware for Mellanox Spectrum switches'
    'linux-firmware-nfp: Firmware for Netronome Flow Processors'
    'linux-firmware-qcom: Firmware for Qualcomm SoCs'
    'linux-firmware-qlogic: Firmware for QLogic devices'
  )
}

package_linux-firmware-whence() {
  pkgdesc+=" - WHENCE file (vendor licenses)"

  install -Dm644 ${pkgbase}/WHENCE -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-other() {
  pkgdesc+=" - Unsorted firmware for various devices"

  local fwdir="${pkgdir}/usr/lib/firmware"
  ZSTD_CLEVEL=19 make -C ${pkgbase} FIRMWAREDIR="${fwdir}" install-zst

  # split
  _pick amd-ucode "${fwdir}"/amd-ucode

  _pick amdgpu "${fwdir}"/amdgpu

  _pick atheros "${fwdir}"/{ar[0-9]*,ath*,carl9170*,htc_*,qca,wil6210*}

  _pick broadcom "${fwdir}"/{bnx2*,brcm,cypress,tigon}

  _pick cirrus "${fwdir}"/{cirrus,cs42l43*}

  _pick intel "${fwdir}"/{e100,hfi1_*,i915,intel,isci,iwlwifi*,ixp4xx,qat_*,xe}

  _pick liquidio "${fwdir}"/liquidio

  _pick marvell "${fwdir}"/{libertas,mwl8k,mwlwifi,mrvl}

  _pick mediatek "${fwdir}"/{mediatek,mt7*,vpu_*,rt[237]*}

  _pick mellanox "${fwdir}"/mellanox

  _pick nfp "${fwdir}"/netronome

  _pick nvidia "${fwdir}"/nvidia

  _pick qcom "${fwdir}"/{qcom,a300_*}

  _pick qlogic "${fwdir}"/{qlogic,qed,ql2???_*,c{b,t,t2}fw-*}

  _pick radeon "${fwdir}"/radeon

  _pick realtek "${fwdir}"/{realtek,rtlwifi,rtw8*,rtl_*}

  # dedup after splitting
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICEN[CS]E* \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_amd-ucode() {
  pkgdesc="Microcode update image for AMD CPUs"
  license=(LicenseRef-amd-ucode)

  mv -v ${pkgname}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 amd-ucode.img -t "${pkgdir}/boot"
  install -Dm644 ${pkgbase}/LICENSE.amd-ucode \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-amdgpu() {
  pkgdesc+=" - Firmware for AMD Radeon GPUs"
  license+=(
    LicenseRef-amdgpu
    MIT
  )
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENSE.amd{gpu,isp} \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-atheros() {
  pkgdesc+=" - Firmware for Qualcomm Atheros WiFi and Bluetooth adapters"
  license+=(
    GPL-2.0-only
    LicenseRef-atheros
  )
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/qca/NOTICE.txt \
    "${pkgdir}/usr/share/licenses/${pkgname}/qca-NOTICE.txt"
  install -Dm644 ${pkgbase}/qcom/NOTICE.txt \
    "${pkgdir}/usr/share/licenses/${pkgname}/qcom-NOTICE.txt"
  install -Dm644 \
    ${pkgbase}/LICENCE.{atheros_,open-ath9k-htc-}firmware \
    ${pkgbase}/LICENSE.{QualcommAtheros*,qcom} \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-broadcom() {
  pkgdesc+=" - Firmware for Broadcom and Cypress network adapters"
  license+=(LicenseRef-broadcom)
  depends=(linux-firmware-whence)
  provides=(linux-firmware-bnx2x)
  conflicts=(linux-firmware-bnx2x)
  replaces=('linux-firmware-bnx2x<=20250613.12fe085f-4')

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.{bnx2*,broadcom_*,cypress,tigon} \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-cirrus() {
  pkgdesc+=" - Firmware for Cirrus Logic audio devices"
  license+=(LicenseRef-cirrus)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENSE.cirrus \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-intel() {
  pkgdesc+=" - Firmware for Intel devices"
  license+=(
    Apache-2.0
    GPL-2.0-only
    LicenseRef-intel
  )
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 \
    ${pkgbase}/LICENCE.{IntcSST2,adsp_sst,e100,fw_sst_0f28} \
    ${pkgbase}/LICENCE.{ibt,iwlwifi,qat}_firmware \
    ${pkgbase}/LICENSE.{hfi1,ipu3}_firmware \
    ${pkgbase}/LICENSE.{i915,ice*,intel*,ivsc,ixp4xx,xe} \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-liquidio() {
  pkgdesc+=" - Firmware for Cavium LiquidIO server adapters"
  license+=(LicenseRef-liquidio)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.cavium_liquidio \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-marvell() {
  pkgdesc+=" - Firmware for Marvell devices"
  license+=(LicenseRef-marvell)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.{Marvell,NXP} \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-mediatek() {
  pkgdesc+=" - Firmware for MediaTek and Ralink devices"
  license+=(LicenseRef-mediatek)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.mediatek \
    ${pkgbase}/LICENCE.ralink-firmware.txt \
    ${pkgbase}/LICENCE.ralink_a_mediatek_company_firmware \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-mellanox() {
  pkgdesc+=" - Firmware for Mellanox Spectrum switches"
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup
}

package_linux-firmware-nfp() {
  pkgdesc+=" - Firmware for Netronome Flow Processors"
  license+=(LicenseRef-netronome)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.Netronome \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-nvidia() {
  pkgdesc+=" - Firmware for NVIDIA GPUs and SoCs"
  license+=(LicenseRef-nvidia)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.nvidia \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-qcom() {
  pkgdesc+=" - Firmware for Qualcomm SoCs"
  license+=(
    BSD-3-Clause
    LicenseRef-qcom
  )
  depends=(
    linux-firmware-atheros
    linux-firmware-whence
  )

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/{qcom/NOTICE.txt,LICENSE.qcom*} \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-qlogic() {
  pkgdesc+=" - Firmware for QLogic devices"
  license+=(LicenseRef-qlogic)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.qla* \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-radeon() {
  pkgdesc+=" - Firmware for ATI Radeon GPUs"
  license+=(LicenseRef-radeon)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENSE.radeon \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

package_linux-firmware-realtek() {
  pkgdesc+=" - Firmware for Realtek devices"
  license+=(LicenseRef-realtek)
  depends=(linux-firmware-whence)

  mv -v ${pkgname#linux-firmware-}/* "${pkgdir}"
  make -C ${pkgbase} FIRMWAREDIR="${pkgdir}/usr/lib/firmware" dedup

  install -Dm644 ${pkgbase}/LICENCE.rtlwifi_firmware.txt \
    -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

# vim:set sw=2 sts=-1 et: