Skip to content

How to update the Yocto base distro release

Pablo Saavedra edited this page Dec 21, 2022 · 5 revisions

How to update the Yocto base distro release

  1. Follow the How to build instructions in balena-browser-wpe to setup your local build environment but stop before the build step
  2. Generate a new manifest.xml. E.g. for each repo on the sources dir:
BRANCH=langdale
for i in $(ls sources)
do
  pushd sources/$i
  git fetch --all && git checkout $BRANCH && git pull
  popd
done
repo manifest -r --no-local-manifests  --suppress-dest-branch  --suppress-upstream-revision  -o manifest-${BRANCH}.xml

Note: This step has to be manually checked since sometimes not all the repos will the same branch name.

  1. Remove the old manifest. E.g: rm manifest-honister.xml

  2. Add yocto/conf/layer.conf the new Poky release in the LAYERSERIES_COMPAT

  3. This will be probably an iterative work:

    1. Follow the Testing local images

    2. If the tests are not satisfactory:

      • Implement the required changes:

        • Adapt scripts and Dockerfile.template on the balena dir
        • Adapt conf and bblayers on the yocto dir
        • Update custom patches on yocto dir
    3. Check the generated balena/image.manifest file to know the version of the relevant components:

      cat balena/image.manifest | grep -E "cog |wpewebkit |libwpe|libwpebackend-fdo|wayland |libegl-mesa|gstreamer1.0 |libgles2-mesa" | awk '{ print "  * "$1" "$3 }''
    4. Create a temporary branch example_update_release

    5. Commit the change

      Bump up meta-webkit layer reference
      
      * What’s new in balena-browser-wpe?
      
        * ...   
      
      * Packages:
      
        * cog 0.10.1-r0
        * gstreamer1.0 1.18.4-r0
        * libegl-mesa 2:21.0.3-r0
        * libgles2-mesa 2:21.0.3-r0
        * libwpe-1.0-1 1.12.0-r0
        * libwpebackend-fdo-1.0-1 1.12.0-r0
        * wayland 1.19.0-r0
        * wpewebkit 2.34.1-r0
      
      Change-type: major
      • Change-type: major|minor|patch according with the relevance of the change (see: https://semver.org/#summary). For the case of updating to a new Yocto release the Change-type will be always major.
    6. Finally, you probably will be interested on create a version commit. Use the following instructions to do it:

      balena-versionist
      git add CHANGELOG.md  VERSION  balena.yml
      git commit -m "v$(cat VERSION)"
      
    7. Create the Pull Request

      $ git push origin to_langdale
      ...
      remote: Create a pull request for 'to_langdale' on GitHub by visiting:
      remote:      https://github.com/Igalia/balena-browser-wpe/pull/new/to_langdale
      
    8. Get an Approval before the Rebase+Merge or set the Unreviewed change text as part of the commit (only for committers).