1SUMMARY = "Linux kernel Bluetooth firmware files from Raspbian distribution" 2DESCRIPTION = "Updated Bluetooth firmware files for RaspberryPi hardware. \ 3RPi-Distro obtains these directly from Cypress; they are not submitted \ 4to linux-firmware for general use." 5HOMEPAGE = "https://github.com/RPi-Distro/bluez-firmware" 6SECTION = "kernel" 7 8# Upstream has provided[^1] licensing information in the Debian 9# copyright file. The wording of the Cypress license subsequently 10# changed in linux-firmware. 11# 12# Rather than make assumptions about what's supposed to be what, we'll 13# use the license implied by the source of these files, named to avoid 14# conflicts with linux-firmware. 15# 16# [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1 17LICENSE = "Firmware-cypress-rpidistro" 18LIC_FILES_CHKSUM = "\ 19 file://LICENCE.cypress-rpidistro;md5=c5d12ae0b24ef7177902a8e288751a4e \ 20" 21 22# These are not common licenses, set NO_GENERIC_LICENSE for them 23# so that the license files will be copied from fetched source 24NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro" 25 26SRC_URI = "git://github.com/RPi-Distro/bluez-firmware" 27SRCREV = "e7fd166981ab4bb9a36c2d1500205a078a35714d" 28PV = "1.2-4+rpt8" 29 30S = "${WORKDIR}/git" 31 32inherit allarch 33 34CLEANBROKEN = "1" 35 36do_extract_lic() { 37 # Extract the license from the Debian copyright file 38 sed -e '1,23d' ${S}/debian/copyright > ${S}/LICENCE.cypress-rpidistro 39} 40# Must be before both do_install and do_populate_lic. Putting it before 41# their common ancestor works; other approaches do not. 42addtask extract_lic after do_unpack before do_patch 43 44do_compile() { 45 : 46} 47 48do_install() { 49 install -d ${D}${nonarch_base_libdir}/firmware/brcm 50 51 cp LICENCE.cypress-rpidistro ${D}${nonarch_base_libdir}/firmware 52 install -m 0644 broadcom/BCM434*.hcd ${D}${nonarch_base_libdir}/firmware/brcm/ 53} 54 55PACKAGES = "\ 56 ${PN}-cypress-license \ 57 ${PN}-bcm43430a1-hcd \ 58 ${PN}-bcm43430b0-hcd \ 59 ${PN}-bcm4345c0-hcd \ 60 ${PN}-bcm4345c5-hcd \ 61" 62 63LICENSE:${PN}-bcm43430a1-hcd = "Firmware-cypress-rpidistro" 64LICENSE:${PN}-bcm43430b0-hcd = "Firmware-cypress-rpidistro" 65LICENSE:${PN}-bcm4345c0-hcd = "Firmware-cypress-rpidistro" 66LICENSE:${PN}-bcm4345c5-hcd = "Firmware-cypress-rpidistro" 67LICENSE:${PN}-cypress-license = "Firmware-cypress-rpidistro" 68 69FILES:${PN}-cypress-license = "\ 70 ${nonarch_base_libdir}/firmware/LICENCE.cypress-rpidistro \ 71" 72FILES:${PN}-bcm43430a1-hcd = "\ 73 ${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \ 74" 75FILES:${PN}-bcm43430b0-hcd = "\ 76 ${nonarch_base_libdir}/firmware/brcm/BCM43430B0.hcd \ 77" 78FILES:${PN}-bcm4345c0-hcd = "\ 79 ${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \ 80" 81FILES:${PN}-bcm4345c5-hcd = "\ 82 ${nonarch_base_libdir}/firmware/brcm/BCM4345C5.hcd \ 83" 84 85RDEPENDS:${PN}-bcm43430a1-hcd += "${PN}-cypress-license" 86RDEPENDS:${PN}-bcm43430b0-hcd += "${PN}-cypress-license" 87RDEPENDS:${PN}-bcm4345c0-hcd += "${PN}-cypress-license" 88RDEPENDS:${PN}-bcm4345c5-hcd += "${PN}-cypress-license" 89RCONFLICTS:${PN}-bcm43430a1-hcd = "linux-firmware-bcm43430a1-hcd" 90RREPLACES:${PN}-bcm43430a1-hcd = "linux-firmware-bcm43430a1-hcd" 91RCONFLICTS:${PN}-bcm43430b0-hcd = "linux-firmware-bcm43430b0-hcd" 92RREPLACES:${PN}-bcm43430b0-hcd = "linux-firmware-bcm43430b0-hcd" 93RCONFLICTS:${PN}-bcm43435c0-hcd = "linux-firmware-bcm4345c0-hcd" 94RREPLACES:${PN}-bcm43435c0-hcd = "linux-firmware-bcm4345c0-hcd" 95RCONFLICTS:${PN}-bcm43435c5-hcd = "linux-firmware-bcm4345c5-hcd" 96RREPLACES:${PN}-bcm43435c5-hcd = "linux-firmware-bcm4345c5-hcd" 97 98# Firmware files are generally not run on the CPU, so they can be 99# allarch despite being architecture specific 100INSANE_SKIP = "arch" 101