diff options
Diffstat (limited to 'meta-raspberrypi')
26 files changed, 1119 insertions, 205 deletions
diff --git a/meta-raspberrypi/.github/CODE_OF_CONDUCT.md b/meta-raspberrypi/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..f3e3d70c89 --- /dev/null +++ b/meta-raspberrypi/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,7 @@ +## Code of Conduct + +This project has adopted the [Contributor +Covenant](https://www.contributor-covenant.org/). For details, see the full +text [here](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). +For more information, additional questions or comments contact the project's +maintainers. diff --git a/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml b/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml index 45a74436a2..556317df54 100644 --- a/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml +++ b/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml @@ -15,9 +15,9 @@ on: jobs: cancel-redundant-workflows: - runs-on: [self-hosted, Linux] + runs-on: ubuntu-latest steps: - - uses: styfle/cancel-workflow-action@0.9.1 + - uses: styfle/cancel-workflow-action@0.10.0 with: all_but_latest: true workflow_id: ${{ github.event.workflow.id }} diff --git a/meta-raspberrypi/.github/workflows/compliance.yml b/meta-raspberrypi/.github/workflows/compliance.yml index 35e47310a0..cfba18533e 100644 --- a/meta-raspberrypi/.github/workflows/compliance.yml +++ b/meta-raspberrypi/.github/workflows/compliance.yml @@ -10,7 +10,7 @@ on: jobs: dco: name: DCO - runs-on: [self-hosted, Linux] + runs-on: ubuntu-latest steps: - name: Checkout the code uses: actions/checkout@v2 @@ -36,7 +36,7 @@ jobs: if: always() reuse: name: reuse - runs-on: [self-hosted, Linux] + runs-on: ubuntu-latest steps: - name: Checkout the code uses: actions/checkout@v2 diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh index a98fa2a190..d2c6dc0ea7 100755 --- a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh +++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh @@ -46,6 +46,7 @@ DISTRO_FEATURES:append = " systemd" VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" +LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch" EOCONF # Add the BSP layer diff --git a/meta-raspberrypi/.github/workflows/mirror.yml b/meta-raspberrypi/.github/workflows/mirror.yml index 11bb185c15..d9e3cdea42 100644 --- a/meta-raspberrypi/.github/workflows/mirror.yml +++ b/meta-raspberrypi/.github/workflows/mirror.yml @@ -12,11 +12,11 @@ concurrency: jobs: yocto-mirror: name: Yocto Git Mirror - runs-on: [self-hosted, Linux] + runs-on: ubuntu-latest steps: - - uses: agherzan/git-mirror-me-action@v1.0.0 + - uses: agherzan/git-mirror-me-action@11f54c7186724daafbe5303b5075954f1a19a63e env: - SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }} - SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }} - with: - destination-repository: "git@push.yoctoproject.org:meta-raspberrypi" + GMM_SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }} + GMM_SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }} + GMM_DST_REPO: "ssh://git@push.yoctoproject.org/meta-raspberrypi" + GMM_DEBUG: "1" diff --git a/meta-raspberrypi/.github/workflows/yocto-builds.yml b/meta-raspberrypi/.github/workflows/yocto-builds.yml index 3dba5e9cbd..824745cc5e 100644 --- a/meta-raspberrypi/.github/workflows/yocto-builds.yml +++ b/meta-raspberrypi/.github/workflows/yocto-builds.yml @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: MIT +--- + name: Builds on: @@ -30,18 +32,35 @@ jobs: runs-on: [self-hosted, Linux] name: ${{ matrix.machine }}/${{ matrix.image }}/poky/systemd env: - DL_DIR: /var/lib/ci/yocto/downloads - SSTATE_DIR: /var/lib/ci/yocto/sstate + DL_DIR: /var/lib/ci/yocto/downloads + SSTATE_DIR: /var/lib/ci/yocto/sstate steps: - name: Checkout the code uses: actions/checkout@v2 with: fetch-depth: 0 + - name: Define Yocto build files + id: changed-files-specific + uses: tj-actions/changed-files@v24 + with: + files: | + .github/actions/** + .github/workflows/docker-images/yocto-builder/** + .github/workflows/docker-images/*.sh + .github/workflows/yocto-builds.yml + classes/**' + conf/** + dynamic-layers/** + files/** + lib/** + recipes-** + wic/** - name: Build a temporary yocto-builder image uses: ./.github/actions/docker-build with: docker_image: yocto-builder id: ${{ github.event.number }} + if: steps.changed-files-specific.outputs.any_changed == 'true' - name: Build the image run: | docker run --rm \ @@ -56,6 +75,7 @@ jobs: --env "SSTATE_DIR=$SSTATE_DIR" \ "yocto-builder-${{ github.event.number }}" \ /entrypoint-build.sh + if: steps.changed-files-specific.outputs.any_changed == 'true' - name: Cleanup temporary docker image uses: ./.github/actions/docker-clean-image with: diff --git a/meta-raspberrypi/.github/workflows/yocto-layer.yml b/meta-raspberrypi/.github/workflows/yocto-layer.yml index 3d5baf8397..6d923665c0 100644 --- a/meta-raspberrypi/.github/workflows/yocto-layer.yml +++ b/meta-raspberrypi/.github/workflows/yocto-layer.yml @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: MIT +--- + name: Yocto Compatible on: @@ -12,26 +14,44 @@ jobs: name: Validate with yocto-check-layer runs-on: [self-hosted, Linux] steps: - - name: Checkout the code - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Build a temporary yocto-builder image - uses: ./.github/actions/docker-build - with: - docker_image: yocto-builder - id: ${{ github.event.number }} - - name: Run yocto-check-layer - run: | - docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \ - --env "BASE_REF=$GITHUB_BASE_REF" \ - "yocto-builder-${{ github.event.number }}" \ - /entrypoint-yocto-check-layer.sh - - name: Cleanup temporary docker image - uses: ./.github/actions/docker-clean-image - with: - docker_image: yocto-builder-${{ github.event.number }} - if: always() - - name: Cleanup dangling docker images - uses: ./.github/actions/docker-clean-dangling - if: always() + - name: Checkout the code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Define Yocto build files + id: changed-files-specific + uses: tj-actions/changed-files@v24 + with: + files: | + .github/actions/** + .github/workflows/docker-images/yocto-builder/** + .github/workflows/docker-images/*.sh + .github/workflows/yocto-builds.yml + classes/**' + conf/** + dynamic-layers/** + files/** + lib/** + recipes-** + wic/** + - name: Build a temporary yocto-builder image + uses: ./.github/actions/docker-build + with: + docker_image: yocto-builder + id: ${{ github.event.number }} + if: steps.changed-files-specific.outputs.any_changed == 'true' + - name: Run yocto-check-layer + run: | + docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \ + --env "BASE_REF=$GITHUB_BASE_REF" \ + "yocto-builder-${{ github.event.number }}" \ + /entrypoint-yocto-check-layer.sh + if: steps.changed-files-specific.outputs.any_changed == 'true' + - name: Cleanup temporary docker image + uses: ./.github/actions/docker-clean-image + with: + docker_image: yocto-builder-${{ github.event.number }} + if: always() + - name: Cleanup dangling docker images + uses: ./.github/actions/docker-clean-dangling + if: always() diff --git a/meta-raspberrypi/README.md b/meta-raspberrypi/README.md index 712b9a28c5..f00d15147c 100644 --- a/meta-raspberrypi/README.md +++ b/meta-raspberrypi/README.md @@ -5,9 +5,22 @@ Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>. [![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest) [![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org) -| | | -|:-: | :-: | -| Build server sponsored by | [balena.io](https://www.balena.io/) | +<table border="0" rules="none"> +<tr border="0"> +<td width="140" height="100" align="center"> + <br /> + <a href="https://www.yoctoproject.org/ecosystem/branding/"> + <img alt="Yocto Project Layer Compatible" src="img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png"> + </a> +</td> +<td width="150" height="100" align="center"> + Sponsored by:<br /> + <a href="https://balena.io"> + <img alt="balena.io" src="img/balena.png"> + </a> +</td> +</tr> +</table> ## Quick links @@ -31,6 +44,12 @@ OpenEmbedded/Yocto distributions and layer stacks, such as: * Yoe Disto (Video and Camera Products). * Yocto/Poky (main focus of testing). +## Yocto Project Compatible Layer + +This layer is officially approved as part of the `Yocto Project Compatible +Layers Program`. You can find details of that on the official Yocto Project +[website](https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-raspberrypi). + ## Dependencies This layer depends on: diff --git a/meta-raspberrypi/docs/extra-build-config.md b/meta-raspberrypi/docs/extra-build-config.md index 9f149968d6..252648ae57 100644 --- a/meta-raspberrypi/docs/extra-build-config.md +++ b/meta-raspberrypi/docs/extra-build-config.md @@ -398,20 +398,16 @@ Ref.: Support for WM8960 based sound cards such as the WM8960 Hi-Fi Sound Card HAT for Raspberry Pi from Waveshare, and ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio, can be enabled in `local.conf` - ```conf MACHINE_FEATURES += "wm8960" - ``` You may need to adjust volume and toggle switches that are off by default - ```bash amixer -c1 sset 'Headphone',0 80%,80% amixer -c1 sset 'Speaker',0 80%,80% amixer -c1 sset 'Left Input Mixer Boost' toggle amixer -c1 sset 'Left Output Mixer PCM' toggle amixer -c1 sset 'Right Input Mixer Boost' toggle amixer -c1 sset 'Right Output Mixer PCM' toggle - ``` Audio capture on ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio is very noisy. diff --git a/meta-raspberrypi/docs/index.rst b/meta-raspberrypi/docs/index.rst index 0d7ee0755d..3f8a088d0c 100644 --- a/meta-raspberrypi/docs/index.rst +++ b/meta-raspberrypi/docs/index.rst @@ -15,6 +15,7 @@ Contents: layer-contents extra-build-config extra-apps + ipcompliance contributing Indices and tables diff --git a/meta-raspberrypi/docs/ipcompliance.md b/meta-raspberrypi/docs/ipcompliance.md new file mode 100644 index 0000000000..01540a8bbf --- /dev/null +++ b/meta-raspberrypi/docs/ipcompliance.md @@ -0,0 +1,23 @@ +# IP Compliance + +## linux-firmware-rpidistro + +By default, some of the machine configurations recommend packages for the +WiFi/BT firmware, provided by +[linux-firmware-rpidistro](https://github.com/RPi-Distro/firmware-nonfree). +This package includes some firmware blobs under the `Synaptics` license which +could carry a legal risk: one of the clauses can be (at least theoretically) +used as a `killswitch`. This was +[reported](https://github.com/RPi-Distro/firmware-nonfree/issues/29) in the +upstream repository. + +You can find the full license text body in the content of the above mentioned +package. + +Due to the above, the build system will only allow this recipe to be built if +the user acknowledges this risk by adding the following configuration: + + LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch" + +You can provide this configuration as part of your `local.conf`, `distro.conf`, +etc. diff --git a/meta-raspberrypi/img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png b/meta-raspberrypi/img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png Binary files differnew file mode 100644 index 0000000000..7d009bb402 --- /dev/null +++ b/meta-raspberrypi/img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png diff --git a/meta-raspberrypi/img/balena.png b/meta-raspberrypi/img/balena.png Binary files differindex a872ce9b81..324c35a350 100644 --- a/meta-raspberrypi/img/balena.png +++ b/meta-raspberrypi/img/balena.png diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc index dc372abee3..c88e7e4999 100644 --- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc +++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc @@ -1,5 +1,5 @@ -RPITOOLS_DATE ?= "20211101" -SRCREV ?= "13474ee775d0c5ec8a7da4fb0a9fa84187abfc87" +RPITOOLS_DATE ?= "20220711" +SRCREV ?= "439b6198a9b340de5998dd14a26a0d9d38a6bcac" RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master" RPITOOLS_S ?= "${WORKDIR}/git" diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.8.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.10.bb index 1a609f5ea7..8ff30735a7 100644 --- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.8.bb +++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.10.bb @@ -4,9 +4,8 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e" SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main;protocol=https" - +SRCREV = "d1e8ac7ad9dcd65ab83749db3e5c96ffee80ebb7" S = "${WORKDIR}/git" -SRCREV = "49ab415d6b601c99979262f9e91c21dcb3a927a7" DEPENDS += "python3-setuptools-scm-native" diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.22.1.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.27.0.bb index e19b58e2dc..45dc49d184 100644 --- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.22.1.bb +++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.27.0.bb @@ -4,8 +4,7 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c" SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main;protocol=https" -SRCREV = "7af3af87037cf1e6697471a3a83c56a0f852b959" - +SRCREV = "e1460098eeca5ea573f92814691bb378e15530d9" S = "${WORKDIR}/git" inherit setuptools3 diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-setup.py-Use-setuptools-instead-of-distutils.patch deleted file mode 100644 index 33480b12ce..0000000000 --- a/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-setup.py-Use-setuptools-instead-of-distutils.patch +++ /dev/null @@ -1,28 +0,0 @@ -From df5657d772accb275a12c1b1690befa8d87305c8 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 5 Mar 2022 09:53:41 -0800 -Subject: [PATCH] setup.py: Use setuptools instead of distutils - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index 2b600ca..0fa0807 100644 ---- a/setup.py -+++ b/setup.py -@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - """ - --from distutils.core import setup, Extension -+from setuptools import setup, Extension - - classifiers = ['Development Status :: 5 - Production/Stable', - 'Operating System :: POSIX :: Linux', --- -2.35.1 - diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb deleted file mode 100644 index 039d1769e8..0000000000 --- a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "A module to control Raspberry Pi GPIO channels" -HOMEPAGE = "https://sourceforge.net/projects/raspberry-gpio-python/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7" - -PYPI_PACKAGE = "RPi.GPIO" - -inherit pypi setuptools3 - -SRC_URI += "file://0001-Remove-nested-functions.patch \ - file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \ - " -SRC_URI[sha256sum] = "7424bc6c205466764f30f666c18187a0824077daf20b295c42f08aea2cb87d3f" - -COMPATIBLE_MACHINE = "^rpi$" - -# ignore issues with -fno-common from gcc-10 until it's fixed in upstream: -# https://sourceforge.net/p/raspberry-gpio-python/tickets/187/ -CFLAGS += "-fcommon" diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.1.bb b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.1.bb new file mode 100644 index 0000000000..e7a9950659 --- /dev/null +++ b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.1.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "A module to control Raspberry Pi GPIO channels" +HOMEPAGE = "https://sourceforge.net/projects/raspberry-gpio-python/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=a2294b0b1daabc30dfb5b3de73b2e00a" + +PYPI_PACKAGE = "RPi.GPIO" + +inherit pypi setuptools3 + +SRC_URI += "file://0001-Remove-nested-functions.patch \ + " +SRC_URI[sha256sum] = "cd61c4b03c37b62bba4a5acfea9862749c33c618e0295e7e90aa4713fb373b70" + +COMPATIBLE_MACHINE = "^rpi$" diff --git a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb index d8265d48fa..9d37f474e9 100644 --- a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb +++ b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb @@ -13,7 +13,7 @@ COMPATIBLE_MACHINE = "^rpi$" SRCBRANCH = "master" SRCFORK = "raspberrypi" -SRCREV = "c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e" +SRCREV = "54fd97ae4066a10b6b02089bc769ceed328737e0" # Use the date of the above commit as the package version. Update this when # SRCREV is changed. diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch new file mode 100644 index 0000000000..4de5229914 --- /dev/null +++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch @@ -0,0 +1,898 @@ +From 31ad68831357d2019624004f1f0846475671088f Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.com> +Date: Thu, 5 May 2022 13:17:21 +0100 +Subject: [PATCH] Braktooth fix for CYW43455 + +This updated Bluetooth firmware contains Braktooth fixes for +CYW43455, addressing the following vulnerabilities: + + CVE-2021-34145 + CVE-2021-34146 + CVE-2021-34147 + CVE-2021-34148 + +Original firmware name: BCM4345C0_003.001.025.0187.0370.hcd + +Signed-off-by: Phil Elwell <phil@raspberrypi.com> +Signed-off-by: Andrei Gherzan <andrei@gherzan.com> +Upstream-Status: Backport +--- + broadcom/BCM4345C0.hcd | Bin 57622 -> 63894 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) + +diff --git a/broadcom/BCM4345C0.hcd b/broadcom/BCM4345C0.hcd +index 82c3647398b67474110fffb6f05986be7c1e3bc8..d4d7e47ad8115bf34cba5df237afaf4bf598e74b 100644 +GIT binary patch +delta 30611 +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 + +delta 24701 +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 +zd$zZrK7R?~^4B$sBf-J39S≪5v=rfl}%Upp;dw$4Ba8*w@^+y*`qC*^R%eA2X<* +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 +E52KeC5&!@I + diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb index b26e80e3e6..c0180eb087 100644 --- a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb +++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb @@ -23,7 +23,10 @@ LIC_FILES_CHKSUM = "\ # so that the license files will be copied from fetched source NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro" -SRC_URI = "git://github.com/RPi-Distro/bluez-firmware;branch=master;protocol=https" +SRC_URI = " \ + git://github.com/RPi-Distro/bluez-firmware;branch=master;protocol=https \ + file://31ad68831357d2019624004f1f0846475671088f.patch \ +" SRCREV = "e7fd166981ab4bb9a36c2d1500205a078a35714d" PV = "1.2-4+rpt8" diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb index 81ccc2cf8c..d39340abf6 100644 --- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb +++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb @@ -5,60 +5,44 @@ to linux-firmware for general use." HOMEPAGE = "https://github.com/RPi-Distro/firmware-nonfree" SECTION = "kernel" -# In maintained upstream linux-firmware: -# * brcmfmac43430-sdio falls under LICENSE.cypress -# * brcmfmac43455-sdio falls under LICENSE.broadcom_bcm43xx -# * brcmfmac43456-sdio falls under LICENSE.broadcom_bcm43xx -# -# It is likely[^1] that both of these should be under LICENSE.cypress. -# Further, at this time the text of LICENSE.broadcom_bcm43xx is the same -# in linux-firmware and RPi-Distro/firmware-nonfree, but this may -# change. -# -# Rather than make assumptions about what's supposed to be what, we'll -# use the license implied by the source of these files, named to avoid -# conflicts with linux-firmware. -# -# [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1 -LICENSE = "\ - Firmware-broadcom_bcm43xx-rpidistro \ -" +LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro" LIC_FILES_CHKSUM = "\ - file://debian/config/brcm80211/LICENSE;md5=8cba1397cda6386db37210439a0da3eb \ + file://debian/config/brcm80211/copyright;md5=b0630b02d90e3da72206c909b6aecc8c \ " - -# These are not common licenses, set NO_GENERIC_LICENSE for them -# so that the license files will be copied from fetched source -NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "debian/config/brcm80211/LICENSE" +# Where these are no common licenses, set NO_GENERIC_LICENSE so that the +# license files will be copied from the fetched source. +NO_GENERIC_LICENSE[binary-redist-Cypress-rpidistro] = "debian/config/brcm80211/copyright" +NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/config/brcm80211/copyright" +LICENSE_FLAGS = "synaptics-killswitch" SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bullseye;protocol=https" - -SRCREV = "99d5c588e95ec9c9b86d7e88d3cf85b4f729d2bc" -PV = "20210315-3+rpt4" - +SRCREV = "541e5a05d152e7e6f0d9be45622e4a3741e51c02" +PV = "20210315-3+rpt7" S = "${WORKDIR}/git" inherit allarch -CLEANBROKEN = "1" - -do_compile() { - : -} +do_configure[noexec] = "1" +do_compile[noexec] = "1" do_install() { install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress - cp debian/config/brcm80211/LICENSE ${D}${nonarch_base_libdir}/firmware/LICENSE.broadcom_bcm43xx-rpidistro + cp debian/config/brcm80211/copyright ${D}${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro - # Replace outdated linux-firmware files with updated ones from - # raspbian firmware-nonfree. Raspbian adds blobs and nvram - # definitions that are also necessary so copy those too. - for fw in brcmfmac43430-sdio brcmfmac43436-sdio brcmfmac43436s-sdio brcmfmac43455-sdio brcmfmac43456-sdio ; do + for fw in \ + brcmfmac43430-sdio \ + brcmfmac43436-sdio \ + brcmfmac43436s-sdio \ + brcmfmac43455-sdio \ + brcmfmac43456-sdio; do cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/ done + cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/ + rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt + # add compat links. Fixes errors like # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-compute-module.txt failed with error -2 ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt @@ -67,77 +51,52 @@ do_install() { } PACKAGES = "\ - ${PN}-broadcom-license \ ${PN}-bcm43430 \ - ${PN}-bcm43455 \ - ${PN}-bcm43456 \ ${PN}-bcm43436 \ ${PN}-bcm43436s \ + ${PN}-bcm43455 \ + ${PN}-bcm43456 \ + ${PN}-license \ " -LICENSE:${PN}-bcm43430 = "Firmware-broadcom_bcm43xx-rpidistro" -LICENSE:${PN}-bcm43436 = "Firmware-broadcom_bcm43xx-rpidistro" -LICENSE:${PN}-bcm43436s = "Firmware-broadcom_bcm43xx-rpidistro" -LICENSE:${PN}-bcm43455 = "Firmware-broadcom_bcm43xx-rpidistro" -LICENSE:${PN}-bcm43456 = "Firmware-broadcom_bcm43xx-rpidistro" -LICENSE:${PN}-broadcom-license = "Firmware-broadcom_bcm43xx-rpidistro" -FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENSE.broadcom_bcm43xx-rpidistro" -FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430* ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob" +LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro" +LICENSE:${PN}-bcm43436 = "Synaptics-rpidistro" +LICENSE:${PN}-bcm43436s = "Synaptics-rpidistro" +LICENSE:${PN}-bcm43455 = "binary-redist-Cypress-rpidistro" +LICENSE:${PN}-bcm43456 = "Synaptics-rpidistro" +LICENSE:${PN}-license = "GPL-2.0-only" + +FILES:${PN}-bcm43430 = " \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob \ +" FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*" FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*" -FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio*" -FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*" -RDEPENDS:${PN}-bcm43430 += "${PN}-broadcom-license" -RDEPENDS:${PN}-bcm43436 += "${PN}-broadcom-license" -RDEPENDS:${PN}-bcm43436s += "${PN}-broadcom-license" -RDEPENDS:${PN}-bcm43455 += "${PN}-broadcom-license" -RDEPENDS:${PN}-bcm43456 += "${PN}-broadcom-license" -RCONFLICTS:${PN}-bcm43430 = "\ - linux-firmware-bcm43430 \ - linux-firmware-raspbian-bcm43430 \ -" - -RREPLACES:${PN}-bcm43430 = "\ - linux-firmware-bcm43430 \ - linux-firmware-raspbian-bcm43430 \ -" - -RCONFLICTS:${PN}-bcm43436 = "\ - linux-firmware-bcm43436 \ - linux-firmware-raspbian-bcm43436 \ -" - -RREPLACES:${PN}-bcm43436 = "\ - linux-firmware-bcm43436 \ - linux-firmware-raspbian-bcm43436 \ -" - -RCONFLICTS:${PN}-bcm43436s = "\ - linux-firmware-bcm43436s \ - linux-firmware-raspbian-bcm43436s \ -" - -RREPLACES:${PN}-bcm43436s = "\ - linux-firmware-bcm43436s \ - linux-firmware-raspbian-bcm43436s \ -" - -RCONFLICTS:${PN}-bcm43455 = "\ - linux-firmware-bcm43455 \ - linux-firmware-raspbian-bcm43455 \ -" -RREPLACES:${PN}-bcm43455 = "\ - linux-firmware-bcm43455 \ - linux-firmware-raspbian-bcm43455 \ -" -RCONFLICTS:${PN}-bcm43456 = "\ - linux-firmware-bcm43456 \ - linux-firmware-raspbian-bcm43456 \ -" -RREPLACES:${PN}-bcm43456 = "\ - linux-firmware-bcm43456 \ - linux-firmware-raspbian-bcm43456 \ +FILES:${PN}-bcm43455 = " \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio* \ " +FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*" +FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro" + +RDEPENDS:${PN}-bcm43430 += "${PN}-license" +RDEPENDS:${PN}-bcm43436 += "${PN}-license" +RDEPENDS:${PN}-bcm43436s += "${PN}-license" +RDEPENDS:${PN}-bcm43455 += "${PN}-license" +RDEPENDS:${PN}-bcm43456 += "${PN}-license" + +RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430" +RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436" +RCONFLICTS:${PN}-bcm43436s = "linux-firmware-bcm43436s" +RCONFLICTS:${PN}-bcm43455 = "linux-firmware-bcm43455" +RCONFLICTS:${PN}-bcm43456 = "linux-firmware-bcm43456" + +RREPLACES:${PN}-bcm43430 = "linux-firmware-bcm43430" +RREPLACES:${PN}-bcm43436 = "linux-firmware-bcm43436" +RREPLACES:${PN}-bcm43436s = "linux-firmware-bcm43436s" +RREPLACES:${PN}-bcm43455 = "linux-firmware-bcm43455" +RREPLACES:${PN}-bcm43456 = "linux-firmware-bcm43456" # Firmware files are generally not run on the CPU, so they can be # allarch despite being architecture specific diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb index 8dade0b99f..3311a844de 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb @@ -2,8 +2,8 @@ LINUX_VERSION ?= "5.10.110" LINUX_RPI_BRANCH ?= "rpi-5.10.y" LINUX_RPI_KMETA_BRANCH ?= "yocto-5.10" -SRCREV_machine = "89c0af71c9cf157a865afb526e9ebc21aadd531b" -SRCREV_meta = "e1979ceb171bc91ef2cb71cfcde548a101dab687" +SRCREV_machine = "427c6bd8835e197693e9b4aedbe45c2c3c84cdce" +SRCREV_meta = "96ea2660bb97e15f48f4885b9e436f24c3606bd9" KMETA = "kernel-meta" diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb index 63a263ee7d..db93537c7c 100644 --- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb +++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb @@ -1,9 +1,9 @@ -LINUX_VERSION ?= "5.15.38" +LINUX_VERSION ?= "5.15.56" LINUX_RPI_BRANCH ?= "rpi-5.15.y" LINUX_RPI_KMETA_BRANCH ?= "yocto-5.15" -SRCREV_machine = "d5b5cbcd17d97f35292f960bca82c0915a03e594" -SRCREV_meta = "37891dc371e83a3451781dd81a8a85cccd60084b" +SRCREV_machine = "a90998a3e549911234f9f707050858b98b71360f" +SRCREV_meta = "3b1dc2f1fcd869f97901402759b859035984aa7f" KMETA = "kernel-meta" diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb index c15b40b4af..b43a41fb8d 100644 --- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb +++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb @@ -9,9 +9,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=00a27da7ac0f9bcd17320ec29ef4bbf6" DEPENDS = "alsa-lib libpcre virtual/egl boost freetype dbus openssl libssh virtual/libomxil coreutils-native curl-native userland" -PR = "r5" +PR = "r6" -SRCREV_default = "f543a0d0e707ab56415f17b0ca6d397394ee8b63" +SRCREV_default = "1f1d0ccd65d3a1caa86dc79d2863a8f067c8e3f8" # omxplayer builds its own copy of ffmpeg from source instead of using the # system's ffmpeg library. This isn't ideal but it's ok for now. We do however @@ -83,6 +83,8 @@ export INCLUDES = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " -D_ export DIST = "${D}" do_compile() { + bbwarn "omxplayer is being deprecated and resources are directed at improving vlc." + # Needed for compiler test in ffmpeg's configure mkdir -p tmp |