wok-next view firmware/receipt @ rev 21020

Cleaning is almost finished... I should proceed to upgrades.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Nov 02 14:15:08 2018 +0200 (2018-11-02)
parents d43bf7aae921
children 0cbe4b1f2230
line source
1 # SliTaz package receipt v2.
3 PACKAGE="firmware"
4 VERSION="20170906"
5 COMMIT="a61ac5cf8374edbfe692d12f805a1b194f7fead2"
6 CATEGORY="meta"
7 SHORT_DESC="Linux firmware"
8 MAINTAINER="devel@slitaz.org"
9 LICENSE="other"
10 WEB_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
12 TARBALL="linux-firmware-$COMMIT.tar.gz"
13 WGET_URL="$WEB_SITE/snapshot/$TARBALL"
15 #BUILD_DEPENDS="b43-fwcutter"
17 # Package name matched to kernel module.
18 # For example, firmware-b43 contains firmware for b43 kernel module.
19 f='firmware'
20 SPLIT="\
21 $PACKAGE-acenic $PACKAGE-af9013 $PACKAGE-aic94xx \
22 $PACKAGE-amdgpu $PACKAGE-ar5523 $PACKAGE-at76c50x-usb \
23 $PACKAGE-ath10k_pci $PACKAGE-ath3k $PACKAGE-ath6kl_sdio \
24 $PACKAGE-ath6kl_usb $PACKAGE-ath9k_htc $PACKAGE-atmel \
25 $PACKAGE-b43 $PACKAGE-b43legacy $PACKAGE-bcm203x \
26 $PACKAGE-bfusb $PACKAGE-bna $PACKAGE-bnx2 \
27 $PACKAGE-bnx2x $PACKAGE-brcmfmac $PACKAGE-brcmsmac \
28 $PACKAGE-bt3c_cs $PACKAGE-btintel $PACKAGE-btmrvl_sdio \
29 $PACKAGE-carl9170 $PACKAGE-cassini $PACKAGE-cpia2 \
30 $PACKAGE-cx18 $PACKAGE-cx231xx $PACKAGE-cx23885 \
31 $PACKAGE-cx24117 $PACKAGE-cx25840 $PACKAGE-cxgb3 \
32 $PACKAGE-cxgb4 $PACKAGE-daqboard2000 $PACKAGE-drx39xyj \
33 $PACKAGE-ds3000 $PACKAGE-dvb-ttpci $PACKAGE-dvb-ttusb-budget \
34 $PACKAGE-dvb-usb-af9015 $PACKAGE-dvb-usb-af9035 $PACKAGE-dvb-usb-az6007 \
35 $PACKAGE-dvb-usb-dib0700 $PACKAGE-dvb-usb-dw2102 $PACKAGE-dvb-usb-ec168 \
36 $PACKAGE-dvb-usb-lmedm04 $PACKAGE-e100 $PACKAGE-emi26 \
37 $PACKAGE-emi62 $PACKAGE-go7007 $PACKAGE-go7007-loader \
38 $PACKAGE-gspca_vicam $PACKAGE-i1480-dfu-usb $PACKAGE-i2400m-usb \
39 $PACKAGE-i915 $PACKAGE-io_edgeport $PACKAGE-io_ti \
40 $PACKAGE-ipw2100 $PACKAGE-ipw2200 $PACKAGE-isci \
41 $PACKAGE-isight_firmware $PACKAGE-ivtv $PACKAGE-iwl3945 \
42 $PACKAGE-iwl4965 $PACKAGE-iwlwifi $PACKAGE-jr3_pci \
43 $PACKAGE-kaweth $PACKAGE-keyspan $PACKAGE-keyspan_pda \
44 $PACKAGE-lgs8gxx $PACKAGE-libertas_cs $PACKAGE-libertas_sdio \
45 $PACKAGE-libertas_tf_usb $PACKAGE-m88ds3103 $PACKAGE-me4000 \
46 $PACKAGE-me_daq $PACKAGE-mga $PACKAGE-mn88472 \
47 $PACKAGE-mn88473 $PACKAGE-mt7601u $PACKAGE-mwifiex_sdio \
48 $PACKAGE-mwifiex_usb $PACKAGE-mwl8k $PACKAGE-myri10ge \
49 $PACKAGE-netxen_nic $PACKAGE-ni_pcidio $PACKAGE-nouveau \
50 $PACKAGE-orinoco $PACKAGE-orinoco_usb $PACKAGE-p54pci \
51 $PACKAGE-p54usb $PACKAGE-pcnet_cs $PACKAGE-prism2_usb \
52 $PACKAGE-pvrusb2 $PACKAGE-qat_dh895xcc $PACKAGE-qed \
53 $PACKAGE-qlcnic $PACKAGE-r128 $PACKAGE-r8169 \
54 $PACKAGE-r8192e_pci $PACKAGE-r8192u_usb $PACKAGE-r8712u \
55 $PACKAGE-radeon $PACKAGE-rsi_sdio $PACKAGE-rsi_usb \
56 $PACKAGE-rt2800pci $PACKAGE-rt2800usb $PACKAGE-rt61pci \
57 $PACKAGE-rt73usb $PACKAGE-rtl8188ee $PACKAGE-rtl8192ce \
58 $PACKAGE-rtl8192cu $PACKAGE-rtl8192de $PACKAGE-rtl8192ee \
59 $PACKAGE-rtl8192se $PACKAGE-rtl8723ae $PACKAGE-rtl8723be \
60 $PACKAGE-rtl8821ae $PACKAGE-rtl8xxxu $PACKAGE-s2255drv \
61 $PACKAGE-saa7134-go7007 $PACKAGE-serial_cs $PACKAGE-si2157 \
62 $PACKAGE-si2165 $PACKAGE-si2168 $PACKAGE-slicoss \
63 $PACKAGE-smc91c92_cs $PACKAGE-smsmdtv $PACKAGE-snd-asihpi \
64 $PACKAGE-snd-cs46xx $PACKAGE-snd-darla20 $PACKAGE-snd-darla24 \
65 $PACKAGE-snd-echo3g $PACKAGE-snd-emu10k1 $PACKAGE-snd-gina20 \
66 $PACKAGE-snd-gina24 $PACKAGE-snd-hda-codec-ca0132 $PACKAGE-snd-hdsp \
67 $PACKAGE-snd-indigo $PACKAGE-snd-indigodj $PACKAGE-snd-indigodjx \
68 $PACKAGE-snd-indigoio $PACKAGE-snd-indigoiox $PACKAGE-snd-korg1212 \
69 $PACKAGE-snd-layla20 $PACKAGE-snd-layla24 $PACKAGE-snd-maestro3 \
70 $PACKAGE-snd-mia $PACKAGE-snd-mixart $PACKAGE-snd-mona \
71 $PACKAGE-snd-pcxhr $PACKAGE-snd-riptide $PACKAGE-snd-usb-6fire \
72 $PACKAGE-snd-vx-lib $PACKAGE-snd-ymfpci $PACKAGE-speedfax \
73 $PACKAGE-starfire $PACKAGE-tda10071 $PACKAGE-tehuti \
74 $PACKAGE-tg3 $PACKAGE-ti_usb_3410_5052 $PACKAGE-tuner-xc2028 \
75 $PACKAGE-typhoon $PACKAGE-ueagle-atm $PACKAGE-usb8xxx \
76 $PACKAGE-usbdux $PACKAGE-usbduxfast $PACKAGE-usbduxsigma \
77 $PACKAGE-wcn36xx $PACKAGE-wd719x $PACKAGE-whiteheat \
78 $PACKAGE-wil6210 $PACKAGE-wl1251 $PACKAGE-wl12xx \
79 $PACKAGE-wl18xx $PACKAGE-xc4000 $PACKAGE-xc5000 \
80 $PACKAGE-zd1201 $PACKAGE-zd1211rw \
81 \
82 $PACKAGE-atheros $PACKAGE-rt2x00 $PACKAGE-rtlnic \
83 $PACKAGE-rtlwifi"
85 compile_rules() {
86 # mainline linux kernel firmware
87 make install
88 mkdir -p $install/usr/share/licenses
89 cp $src/LICENSE.* $src/LICENCE.* $install/usr/share/licenses
90 mv $install/lib/firmware/GPL* $install/usr/share/licenses
91 rm $install/lib/firmware/Makefile
93 # separate firmware from Debian repository
94 while read deb; do
95 pkg="$(basename $deb)"
96 title "Additional firmware from ${pkg%_all.deb}"
97 url="http://ftp.ch.debian.org/debian/pool/$deb"
98 [ -f "$SRC/$pkg" ] || wget -O $SRC/$pkg $url
99 dpkg-deb -X $SRC/$pkg $install | sed 's|^.| |'
100 done <<EOT
101 non-free/a/atmel-firmware/atmel-firmware_1.3-4_all.deb
102 non-free/b/bluez-firmware/bluez-firmware_1.2-3_all.deb
103 non-free/z/zd1211-firmware/firmware-zd1211_1.5-4_all.deb
104 main/h/hdmi2usb-fx2-firmware/hdmi2usb-fx2-firmware_0.0.0~git20151225-1_all.deb
105 EOT
107 # random firmware
108 while read dir url; do
109 [ -z "$dir" -o "$dir" == '#' ] && continue
110 title "Additional firmware from $dir"
111 tarball=$dir-$(basename $url)
112 [ -f $SRC/$tarball ] || wget -O $SRC/$tarball $url
113 mkdir -p $src/$dir
114 case $tarball in
115 *.tar.*) tar -C $src/$dir -xf $SRC/$tarball;;
116 *) cp $SRC/$tarball $src/$dir;;
117 esac
118 cd $src/$dir
119 [ $(ls . | wc -l) -eq 1 -a -d ./$(ls .) ] && cd ./$(ls .)
121 fdir="$install/lib/firmware"
122 case $dir in
123 dvb-firmware)
124 ./install;;
125 adaptec-firmware)
126 rpm2cpio *.rpm | cpio -idm; cp -r lib/ $install;;
127 ath10k-firmware)
128 cp -r ath10k $fdir;;
129 # prohibited
130 # broadcom-firmware)
131 # b43-fwcutter -w $fdir linux/wl_apsta.o
132 # cp linux/wl_apsta.o $fdir
133 # ;;
134 # broadcom-legacy-firmware)
135 # b43-fwcutter -w $fdir wl_apsta-3.130.20.0.o
136 # cp *.o $fdir/wl_apsta-3.130.20.0.o
137 # ;;
138 bfusb)
139 cp *.frm $fdir;;
140 alsa-firmware)
141 ./configure $CONFIGURE_ARGS &&
142 make &&
143 make install;;
144 esac
146 done <<EOT
147 # https://github.com/OpenELEC/dvb-firmware
148 dvb-firmware https://github.com/OpenELEC/dvb-firmware/archive/3fef04a.tar.gz
150 # https://adaptec.com/en-us/speed/scsi/linux/aic94xx-seq-30-1_tar_gz.php
151 adaptec-firmware http://download.adaptec.com/scsi/linux/aic94xx-seq-30-1.tar.gz
153 # https://wireless.wiki.kernel.org/en/users/Drivers/ath10k/firmware
154 # https://github.com/sumdog/ath10k-firmware
155 # https://github.com/kvalo/ath10k-firmware
156 ath10k-firmware https://github.com/sumdog/ath10k-firmware/archive/5faf5bb.tar.gz
158 # https://wiki.debian.org/bcm43xx
159 # broadcom-firmware http://mirror2.openwrt.org/sources/broadcom-wl-5.100.138.tar.bz2
160 # broadcom-legacy-firmware http://mirror2.openwrt.org/sources/wl_apsta-3.130.20.0.o
162 # https://wiki.ubuntuusers.de/Archiv/Bluetooth/BlueFritz%21/
163 bfusb ftp://ftp.in-berlin.de/pub/capi4linux/firmware/bluefusb/3-18-39/bfubase.frm
165 # http://alsa-project.org/main/index.php/Main_Page
166 # http://git.alsa-project.org/?p=alsa-firmware.git;a=summary
167 alsa-firmware ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.29.tar.bz2
168 EOT
170 # fix permissions
171 find $install -type f -exec chmod 644 '{}' \;
172 find $install -type d -exec chmod 755 '{}' \;
173 }
175 genpkg_rules() {
176 module=${PACKAGE#*-}
177 case $module in
178 firmware)
179 CAT="meta|all firmware"
180 DEPENDS="$SPLIT"
181 ;;
182 misc)
183 copy @std @rm
184 CAT="kernel|misc firmware"
185 ;;
186 b43|b43legacy)
187 path=$(find $WOK/linux/install -type f -name $module.ko.xz)
188 desc=$(modinfo -Fdescription $path)
189 CAT="kernel|$desc"
190 DEPENDS="b43-fwcutter"
191 COOKOPTS="empty-pkg"
192 ;;
194 # Meta-packages for backward compatibility with previous release
195 *-atheros)
196 # Some files from old "firmware-atheros" package are not packaged
197 # because they are not required by any of current kernel module.
198 CAT="meta|atheros meta"
199 DEPENDS="firmware-ar5523 firmware-ath3k"
200 ;;
201 *-rt2x00)
202 # Some files are not packaged as well
203 CAT="meta|rt2x00 meta"
204 DEPENDS="firmware-rt61pci firmware-rt2800pci firmware-rt2800usb \
205 firmware-rt73usb"
206 ;;
207 *-rtlnic)
208 CAT="meta|Realtek ethernet meta"
209 DEPENDS="firmware-r8169"
210 ;;
211 *-rtlwifi)
212 # Some files are not packaged as well
213 CAT="meta|rtlwifi meta"
214 DEPENDS="firmware-rtl8188ee firmware-rtl8192ce firmware-rtl8192cu \
215 firmware-rtl8192de firmware-rtl8192ee firmware-rtl8192se \
216 firmware-r8712u firmware-rtl8xxxu firmware-rtl8723be \
217 firmware-rtl8821ae"
218 ;;
219 # End meta-packages
221 *)
222 path=$(find $WOK/linux/install -type f -name $module.ko.xz)
223 fw=$(modinfo -Ffirmware $path | sort -u)
224 copy $fw
225 # check copied files
226 for i in $fw; do
227 if [ ! -f "$fs/lib/firmware/$i" ]; then
228 echo " Error: $i missing!"
229 mkdir -p $fs/lib/firmware/$(dirname $i)
230 touch $fs/lib/firmware/$i.missing
231 chmod 400 $fs/lib/firmware/$i.missing
232 fi
233 done
235 # TODO: copy licenses
236 DEPENDS=" "
238 desc=$(modinfo -Fdescription $path | head -n1)
239 CAT="kernel|${desc:-$module}"
241 # copy the whole folder
242 case $module in
243 acenic|amdgpu|b43|b43legacy|bnx2|bnx2x|cxgb3|cxgb4|e100|emi26|\
244 emi62|vicam|i915|kaweth|keyspan|keyspan_pda|mwl8k|qed|r128|\
245 slicoss)
246 copy $module/;;
247 zd1211rw) copy zd1211/;;
248 mga) copy matrox/;;
249 r8169) copy rtl_nic/;;
250 r8192e_pci) copy RTL8192E/;;
251 r8192u_usb) copy RTL8192U/;;
252 esac
254 # follow version (not realized yet)
255 case $module in
256 at76c50x-usb|atmel)
257 VERSION='1.3-4';;
258 bcm203x)
259 VERSION='1.2-3';;
260 zd1211rw)
261 VERSION='1.5-4';;
262 esac
263 ;;
264 esac
265 }
267 post_install_firmware_b43() {
268 drv=$(mktemp -d)
269 [ -n "$quiet" ] || echo -e '\nDownloading firmware (12.9MiB)...'
270 # download
271 wget -P $drv http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
272 # extract tarball
273 tar -C $drv -xf $drv/*.tar.bz2
274 mkdir -p "$1/tmp" "$1/lib/firmware"
275 # copy driver to chroot
276 cp "$drv/broadcom-wl-5.100.138/linux/wl_apsta.o" "$1/tmp"
277 # extract firmware in the chroot
278 chroot "$1/" b43-fwcutter -w '/lib/firmware' '/tmp/wl_apsta.o'
279 # clean
280 rm -rf "$drv" "$1/tmp/wl_apsta.o"
281 # permissions
282 chmod 755 "$1/lib/firmware/b43"
283 find "$1/lib/firmware/b43" -type f -exec chmod 644 '{}' \;
284 }
285 post_remove_firmware_b43() {
286 rm -rf "$1/lib/firmware/b43"
287 }
289 post_install_firmware_b43legacy() {
290 drv=$(mktemp -d)
291 [ -n "$quiet" ] || echo -e '\nDownloading firmware (0.6MiB)...'
292 # download
293 wget -P $drv http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
294 mkdir -p "$1/tmp" "$1/lib/firmware"
295 # copy driver to chroot
296 cp "$drv/wl_apsta-3.130.20.0.o" "$1/tmp"
297 # extract firmware in the chroot
298 chroot "$1/" b43-fwcutter -w '/lib/firmware' '/tmp/wl_apsta-3.130.20.0.o'
299 # clean
300 rm -rf "$drv" "$1/tmp/wl_apsta-3.130.20.0.o"
301 # permissions
302 chmod 755 "$1/lib/firmware/b43legacy"
303 find "$1/lib/firmware/b43legacy" -type f -exec chmod 644 '{}' \;
304 }
305 post_remove_firmware_b43legacy() {
306 rm -rf "$1/lib/firmware/b43legacy"
307 }