# Template file for 'linux-firmware'
pkgname=linux-firmware
version=20170311
revision=1
noarch=yes
short_desc="Binary firmware blobs for the Linux kernel"
maintainer="Juan RP <xtraeme@voidlinux.eu>"
homepage="http://www.kernel.org/"
license="See /usr/share/licenses/${pkgname}"
hostmakedepends="git"
depends="${pkgname}-amd-${version}_${revision} ${pkgname}-network-${version}_${revision}"

do_fetch() {
	local _githash=695f2d6d82173f4e322d8f834c9849775778022a
	local _url="git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
	git clone ${_url} ${wrksrc}
	cd ${wrksrc}
	git checkout ${_githash}

	# Restore old Bluetooth firmware
	# https://bugzilla.kernel.org/show_bug.cgi?id=190831
	# @pullmoll: Looks like it is fixed (Emmanuel Grumbach 2017-03-08 07:10:16 UTC: OK - close this for now)
	# Leaving it enabled until someone confirms it isn't needed anymore
	git checkout 9c71af939b51ce1431087acfb5b0f61c0b491c63 -- intel/ibt-11-5.{sfi,ddc}
}
do_install() {
	vmkdir usr/lib/firmware
	vmkdir usr/share/licenses/${pkgname}
	vcopy "*" usr/lib/firmware
	rm -f ${DESTDIR}/usr/lib/firmware/{README*,configure,GPL*}
	mv ${DESTDIR}/usr/lib/firmware/{LICEN*,WHENCE} \
		${DESTDIR}/usr/share/licenses/${pkgname}
}

linux-firmware-amd_package() {
	short_desc+=" - AMD CPU/GPU microcode"
	noarch=yes
	pkg_install() {
		vmove usr/lib/firmware/amd*
		vmove usr/lib/firmware/radeon
		vmove usr/share/licenses/linux-firmware/LICENSE.amdgpu
		vmove usr/share/licenses/linux-firmware/LICENSE.amd-ucode
		vmove usr/share/licenses/linux-firmware/LICENSE.radeon
		# https://github.com/voidlinux/void-packages/issues/3505
		ln -s bonaire_mc.bin ${PKGDESTDIR}/usr/lib/firmware/radeon/boniare_mc.bin
	}
}
linux-firmware-intel_package() {
	short_desc+=" - Intel CPU/GPU microcode"
	noarch=yes
	pkg_install() {
		vmove usr/lib/firmware/i915
		vmove usr/share/licenses/linux-firmware/LICENSE.i915
	}
}
linux-firmware-nvidia_package() {
	short_desc+=" NVIDIA GPU microcode"
	noarch=yes
	pkg_install() {
		vmove usr/lib/firmware/nvidia
		vmove usr/share/licenses/linux-firmware/LICENCE.nvidia*
	}
}
linux-firmware-network_package() {
	short_desc+=" - network"
	noarch=yes
	pkg_install() {
		vmove usr/lib/firmware/3com
		vmove usr/lib/firmware/RTL8192E
		vmove "usr/lib/firmware/rt*"
		vmove "usr/lib/firmware/ath*"
		vmove "usr/lib/firmware/ar*"
		vmove "usr/lib/firmware/bnx2*"
		vmove usr/lib/firmware/brcm
		vmove "usr/lib/firmware/cxgb*"
		vmove "usr/lib/firmware/htc*"
		vmove "usr/lib/firmware/iwl*"
		vmove "usr/lib/firmware/intel*"
		vmove usr/lib/firmware/kaweth
		vmove usr/lib/firmware/libertas
		vmove usr/lib/firmware/mrvl
		vmove usr/lib/firmware/ueagle-atm
		vmove usr/lib/firmware/ti-connectivity
	}
}
