Repository navigation
Description
Description
Flutter's Linux engine currently builds against a Debian Bullseye sysroot by default. We should prepare for newer Debian Trixie sysroots while maintaining compatibility with Bullseye.
Newer versions of system libraries and headers, particularly GLib/ATK, can expose compilation issues that are not encountered with the existing Bullseye sysroot.
Rather than switching the default sysroot immediately, we should ensure that the Linux engine and embedder can compile successfully against both environments.
Proposed work
- Identify and resolve compilation or linking issues encountered with a Trixie sysroot.
- Maintain source compatibility with the existing Bullseye sysroot.
- Validate Linux engine and embedder builds against both sysroots, initially targeting x64 and arm64 where available.
- Document how to select and test alternative sysroots.
- Consider CI coverage to catch future compatibility regressions.
Goals
- Both Bullseye and Trixie sysroot builds succeed without source modifications.
- Bullseye remains the default until a separate migration decision is made.
- No unintended changes to the existing minimum runtime compatibility or ABI requirements.
- Coordination with Chromium project to ensure it's Trixie sysroot meets Flutter requirements to build successfully
Related work
- Patch atkversion.h in sysroots to add C linkage declarations #195883
- fix(linux): handle ATK C linkage with newer GLib headers #193942 — Fix ATK C linkage with newer GLib headers. An initial compatibility fix validated against Bullseye and Trixie sysroots.
- [Linux] Add a tested memory duplication helper for older GLib headers #194924
Testing / validation
For reference, this is the setup I used to test with a Trixie sysroot:
https://gist.github.com/richyo-codes/eed91b795925f091299ebedcd891412c
The patch switches x64/amd64 to Trixie and adds the sysroot metadata; arm64 remains on Bullseye. The gist also includes the install/rebuild steps. Sharing it as a testing reference, with any change to the default sysroot still a separate decision.
Flutter Dependency on Chromium Sysroot
Flutter depends on using the Chromium project for the pre-compiled sysroot. Note I had to make a few fixes to this separate project to even test building with the newer sysroot. This umbrella issue is therefore also capturing a cross project coordination issue that will need to be resolved when Flutter eventually upgrades the build system to the newer sysroot.
The patches I made can be viewed here.
chromium/chromium@main...richyo-codes:chromium:trixie-sysroot-glibc-fix
Please advise if a new issue should be created related to this.
Activity
mbcorona commentedon Oct 22, 2026
Hi @richyo-codes, thanks for scoping this out. The related PRs #193942 and #194924 both link correctly as contributing work and neither closes this tracker, which is right for an umbrella issue. Routing to team-linux as a proposal.