# Contributor: William Pitcock <nenolod@dereferenced.org>
# Contributor: Oliver Smith <ollieparanoid@bitmessage.ch>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-firmware
pkgver=20171227
pkgrel=2
pkgdesc="firmware files for linux"
#url="http://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=""
replaces="linux-grsec linux-vserver"
options="!strip !check"
source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-${pkgver}.tar.gz
	https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt
	https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin
	LICENSE.brcmfmac43430::https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm80211/LICENSE
"

_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-ucode amdgpu ar3k ath10k ath6k
	ath9k_htc atmel atusb av7110 bnx2 bnx2x brcm carl9170fw cavium cis cpia2 cxgb3
	cxgb4 dabusb dsp56k e100 edgeport emi26 emi62 ene-ub6250 ess go7007 i915 imx
	intel isci kaweth keyspan keyspan_pda korg libertas liquidio matrox mellanox
	moxa mrvl mwl8k mwlwifi myricom netronome nvidia ositech qca qcom qed qlogic
	r128 radeon rockchip rsi rtl8192e rtl_bt rtl_nic rtlwifi sb16 slicoss sun sxg
	tehuti ti-connectivity ti-keystone tigon ttusb-budget ueagle-atm vicam vxge yam
	yamaha"
subpackages="$pkgname-other"
depends="linux-firmware-other"
for i in $_folders; do
	subpackages="$pkgname-$i:folder $subpackages"
	depends="$pkgname-$i $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
	for i in brcmfmac43430-sdio.txt brcmfmac43430-sdio.bin LICENSE.brcmfmac43430; do
		install -Dm 644 "$srcdir/$i" "$pkgdir/lib/firmware/brcm/$i"
	done
	rm -f "${pkgdir}/usr/lib/firmware/{Makefile,README,configure,GPL-3}"
}

folder() {
	local folder=${subpkgname##linux-firmware-}
	pkgdesc="firmware files for linux ($_folder folder)"
	depends=""

	# 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=""
	mkdir -p "$subpkgdir"/
	mv "$pkgdir"/lib "$subpkgdir"/
}

sha512sums="749201c9bb9ea620789f8871d4d52ef5f617b34d59a9db39334edb8fbc86a79d78aa496209d0afc732b64bace78d1a71217b5ec22c9dc3f94c12a80f6acba702  linux-firmware-20171227.tar.gz
bd6417ada7dbb940e75f43d85d9778f362f6c2801b27b4e13043eebfb5f38da4e728bdfe7240304d0ad172ba8ac1a3eff4df40119317093ea19ae23333819024  brcmfmac43430-sdio.txt
6751470a48e0225731d91ab33464eaeac86da3e10dcf63a85ae0aeea6fa114ab01567fda08604e500c54bb14d38578f6c0b135c7772597d07b5ebda1e662b935  brcmfmac43430-sdio.bin
345a081c0df701028f7177856881cdba0a4111d11f3b828397fc92a69e87a427d923cf8b8ff5075e3118d94e73726c0a4220c01658b844e8ae1f84b3a74eeba9  LICENSE.brcmfmac43430"
