Skip to content

[Linux][Engine] Ensure build compatibility with Bullseye and Trixie sysroots #194923

Open

Description

@richyo-codes

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

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

  1. added
    engineflutter/engine related. See also e: labels.
    platform-linuxBuilding on or for Linux specifically
    c: proposalA detailed proposal for a change to Flutter
    team-linuxOwned by the Linux platform team
    on Oct 22, 2026
  2. mbcorona commented on Oct 22, 2026

    @mbcorona
    Member

    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.

  3. added
    triaged-linuxTriaged by the Linux platform team
    P2Important issues not at the top of the work list
    on Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: desktopRunning on desktopc: proposalA detailed proposal for a change to Flutterengineflutter/engine related. See also e: labels.platform-linuxBuilding on or for Linux specificallyteam-linuxOwned by the Linux platform teamtriaged-linuxTriaged by the Linux platform team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions