Aarch64 for GNOME Nightly apps

We had aarch64 builds of the runtime since the very early days of Flatpak (long before Flathub), and you could manually build your applications for aarch64 natively or by using qemu. Now you will also be able to download aarch64 builds of GNOME applications straight from the Nightly repository so all 3 of you out there with such machines can finally rejoice.

The person mostly responsible for this is my good friend Julian Sparber who got around shorting through all the infrastructure needed and baited me into fixing the edge cases. Special thanks also to Bart for taking care of the GitLab Runners as usual.

We’ve also updated the CI guide to include the aarch64 builds, here is an example Merge Request for gnome-weather. In short this is what you need to have in your .gitlab-ci.yml to test and push the builds into the repository.

include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'

    MANIFEST_PATH: "build-aux/flatpak/org.gnome.NautilusDevel.yml"
    FLATPAK_MODULE: "nautilus"
    APP_ID: "org.gnome.NautilusDevel"
    RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
    BUNDLE: "nautilus-dev.flatpak"

  extends: ['.flatpak@x86_64', '.vars-devel']

  extends: ['.flatpak@aarch64', '.vars-devel']

  extends: '.publish_nightly'
  needs: ['flatpak@x86_64']

  extends: '.publish_nightly'
  needs: ['flatpak@aach64']

The main difference from the existing x86_64 build is the template job you extend, as well as the needs: of the added nightly job.

And that’s it. Enjoy!

GNOME Nightly Annual ABI Break

This only affects GNOME Nightly, if you are using the stable runtimes you have nothing to worry about

It’s that time of the year again. We’ve updated the base of the GNOME Nightly Flatpak runtime to the Freedesktop-SDK 21.08 beta release.

This brings lots of improvements and updates to the underlying toolchain, but it also means that between yesterday and today, there is an ABI break and that all your Nightly apps will need to be rebuilt against the newer base.

Thankfully this should be as simple as triggering a new Gitlab CI pipeline. If you merge anything that will also trigger a new build as well.

I suggest you also take the time to set up a daily scheduled CI job so that your applications keep up with runtime changes automatically, even if there hasn’t been new activity in the app for some time. It’s quite simple.

Go to the your project, Settings -> CI/CD -> Schedules -> New schedule button -> Select the daily preset.

Happy hacking.