aboutsummaryrefslogtreecommitdiffstats
path: root/main/linux-firmware/APKBUILD
blob: c4f3ec26ea425597099d0b89edff598dae2e50ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Contributor: Oliver Smith <ollieparanoid@bitmessage.ch>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-firmware
pkgver=20180615
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=""
provides="linux-firmware-any"
provider_priority=1
options="!strip !check !archcheck !tracedeps !spdx"

# raspberry specific bt and wifi firmware
# brcmfmac43455-sdio version 7.45.154
# brcmfmac43430-sdio version 7.45.98.38
_rpi_wifi=86e88fbf0345da49555d0ec34c80b4fbae7d0cd3
# unknown version
_rpi_bt=ade2bae1aaaebede09abb8fb546f767a0e4c7804
_rpi_firmwares="
	https://github.com/RPi-Distro/firmware-nonfree/raw/$_rpi_wifi/brcm/brcmfmac43430-sdio.bin
	https://github.com/RPi-Distro/firmware-nonfree/raw/$_rpi_wifi/brcm/brcmfmac43430-sdio.txt
	https://github.com/RPi-Distro/firmware-nonfree/raw/$_rpi_wifi/brcm/brcmfmac43455-sdio.bin
	https://github.com/RPi-Distro/firmware-nonfree/raw/$_rpi_wifi/brcm/brcmfmac43455-sdio.clm_blob
	https://github.com/RPi-Distro/firmware-nonfree/raw/$_rpi_wifi/brcm/brcmfmac43455-sdio.txt

	https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM43430A1.hcd
	https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM4345C0.hcd
	"

source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-${pkgver}.tar.gz
	$_rpi_firmwares
"

_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::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

	local fw; for fw in $_rpi_firmwares; do
		install -Dm 644 $srcdir/${fw##*/} \
		    "$pkgdir"/lib/firmware/brcm/"${fw##*/}"
	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=""
	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="37572701d6e7be63dfb026f8a23fee345da1e1b191f02cc80d5f323537d544b325d484517966226a6e87d9b3c3741311ad7c6f2b15253b0a88f6875794f8c824  linux-firmware-20180615.tar.gz
6751470a48e0225731d91ab33464eaeac86da3e10dcf63a85ae0aeea6fa114ab01567fda08604e500c54bb14d38578f6c0b135c7772597d07b5ebda1e662b935  brcmfmac43430-sdio.bin
bd6417ada7dbb940e75f43d85d9778f362f6c2801b27b4e13043eebfb5f38da4e728bdfe7240304d0ad172ba8ac1a3eff4df40119317093ea19ae23333819024  brcmfmac43430-sdio.txt
7d3cf1a98c150aee10290edfd9bfb1fc30a7aa2ae23cd7b7f56822758334995bf24a9a0d81ef00fe5670c69940b82def890f404d93d8dc4c330ee21e90dba1fb  brcmfmac43455-sdio.bin
a32cd00a1b3f6d10d3bc6fa15e6c5ae167e90514e9f9436bd3796f9c7df6135cbaa580c56ad236982ff0ca815e6c04b12495ba370308049c98dfbba808985862  brcmfmac43455-sdio.clm_blob
901d839f6cb14512902584d75e5c6c1738cb7712ce701d1b57264d64dd084080a293c7326fa347c544b571ea0f8113304ebe048ec907546f07fe42891f357c47  brcmfmac43455-sdio.txt
a7b37bce092367125e390017bb0329c3b7f8fa891cf30d422ee73ce53d0592d4ff0fc2e2a94a87eefb641d5dd8631fae1cc46664224dea987ca04b68a8af8519  BCM43430A1.hcd
2e91c6e7f79fa5c33bc103614311656631b4c595e5a25cdbee048aa810244f604b0bbae0e6f4e9294a0c332401f8347549a42424c19a27580b3cdc9f6b9f8e2c  BCM4345C0.hcd"