# Contributor: Oliver Smith # Maintainer: Natanael Copa pkgname=linux-firmware pkgver=20200421 pkgrel=1 pkgdesc="firmware files for linux" #url="https://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=summary" url="http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=summary" arch="all" license="custom:multiple" makedepends= install="" provides="linux-firmware-any" provider_priority=1 options="!strip !check !archcheck !tracedeps !spdx" _rpi_bt=fff76cb15527c435ce99a9787848eacd6288282c # cypress fmac: https://community.cypress.com/docs/DOC-19375 source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname-${pkgver}.tar.gz https://community.cypress.com/servlet/JiveServlet/download/19375-1-53475/cypress-fmac-v5.4.18-2020_0402.zip BCM43430A1.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM43430A1.hcd BCM4345C0.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM4345C0.hcd " _giturl="git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" _upload=dev.alpinelinux.org:/archive/$pkgname/ _builddir="$srcdir"/$pkgname-$pkgver # Put /lib/firmware/* folders in subpackages _folders="3com acenic adaptec advansys amd amd-ucode amdgpu ar3k ath10k ath6k ath9k_htc atmel atusb av7110 bnx2 bnx2x brcm cadence cavium cis cpia2 cxgb3 cxgb4 dabusb dpaa2 dsp56k e100 edgeport emi26 emi62 ene-ub6250 ess go7007 i915 imx inside-secure intel isci kaweth keyspan keyspan_pda korg libertas liquidio matrox mediatek mellanox meson microchip moxa mrvl mwl8k mwlwifi myricom netronome nvidia ositech qca qcom qed qlogic r128 radeon rockchip rsi rtl8192e rtl_bt rtl_nic rtlwifi rtw88 sb16 slicoss sun sxg tehuti ti-connectivity ti-keystone tigon ttusb-budget ueagle-atm vicam vxge yam yamaha" subpackages="$pkgname-other::noarch $pkgname-none::noarch" depends="linux-firmware-other=$pkgver-r$pkgrel" for i in $_folders; do subpackages="$pkgname-$i:_folder:noarch $subpackages" depends="$pkgname-$i=$pkgver-r$pkgrel $depends" done snapshot() { local _date=$(date +%Y%m%d) local _pkg=$pkgname-$_date.tar.gz mkdir -p "$srcdir" cd "$srcdir" rm -rf "$pkgname" git clone --depth=1 --bare $_giturl git --git-dir ${_giturl##*/} archive -o $_pkg \ --prefix=$pkgname-$_date/ HEAD msg "New snapshot: $_pkg" if [ -n "$_upload" ]; then msg "Uploading to $_upload" scp $_pkg $_upload && abump $pkgname-$_date fi } package() { cd "${_builddir}" make DESTDIR="${pkgdir}" FIRMWAREDIR="/lib/firmware" install # add compat links for pre-5.0 kernel ln -s brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43455-sdio.txt ln -s brcmfmac43430-sdio.raspberrypi,3-model-b.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.txt # https://gitlab.alpinelinux.org/alpine/aports/issues/11408 ln -s brcmfmac43430-sdio.raspberrypi,3-model-b.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt local fw; for fw in $source; do local _f=${fw%::*} case $_f in *.hcd*) install -Dm 644 $srcdir/$_f \ "$pkgdir"/lib/firmware/brcm/"${_f%.*}" ;; *.zip) unzip -p $srcdir/${fw##*/} "cypress-firmware-*.tar.gz" | \ tar xzv -C "$pkgdir"/lib/firmware/brcm/ \ --wildcards --strip-components=1 \ "*.bin" "*.clm_blob" ;; esac done rm -f "${pkgdir}/usr/lib/firmware/{Makefile,README,configure,GPL-3}" find "${pkgdir}" \( -name '*.S' -or -name '*.asm' -or \ -name '*.c' -or -name '*.h' -or -name '*.pl' -or \ -name 'Makefile' \) -exec rm -- {} \; } _folder() { local folder=${subpkgname##linux-firmware-} pkgdesc="firmware files for linux ($folder folder)" depends="" provides="linux-firmware-any" provider_priority= # Move /lib/firmware/$folder (case insensitive) mkdir -p "$subpkgdir/lib/firmware" mv "$(find "$pkgdir/lib/firmware" -iname "$folder" -type d)" \ "$subpkgdir/lib/firmware" } other() { # Requires subfolders to be split in subpackages local leftover="" local i for i in "$pkgdir"/lib/firmware/*; do [ -d "$i" ] && leftover="$leftover $(basename $i)" done if [ "$leftover" != "" ]; then local fixed error "Not all subfolders have been moved to subpackages!" error "Fix this by adjusting _folders as follows:" fixed="$(echo $_folders$leftover | tr " " "\n" | tr '[A-Z]' '[a-z]' | sort)" echo "_folders=\"$(printf "$fixed" | tr "\n" " ")\"" | fold -s return 1 fi # Move /lib/firmware (which doesn't have subfolders now) pkgdesc="firmware files for linux (uncategorized)" depends="" provides="linux-firmware-any" provider_priority= mkdir -p "$subpkgdir"/ mv "$pkgdir"/lib "$subpkgdir"/ } none() { # dummy package with no firmware pkgdesc="Empty linux firwmare package for those who does not need any firmware" provider_priority= provides="linux-firmware-any" depends= mkdir -p "$subpkgdir" } sha512sums="3f8ec2150f9895381e71cb0d0d403694784c4a50f164da59d338dbb37bb643150bed2c6de4729d37f25989b8e799475a53319882c05a06d3eadcc4c349082162 linux-firmware-20200421.tar.gz d3d976799f43b3b344305959b10d220709f6881cec102dfe391347869748f76d517d1b0d31076e2baa9759cb6a622eb5fc6f4fe45d6d3151974725e254255afa cypress-fmac-v5.4.18-2020_0402.zip a7b37bce092367125e390017bb0329c3b7f8fa891cf30d422ee73ce53d0592d4ff0fc2e2a94a87eefb641d5dd8631fae1cc46664224dea987ca04b68a8af8519 BCM43430A1.hcd.fff76cb1 a52fdb876131affa85b39434d619580c0e1605094992ffa3bb321af387dd79739736842dea9ffa759e6658aecde40eda6b06d93dbb58234a4b126b756c28521e BCM4345C0.hcd.fff76cb1"