Skip to content

snap: consume graphics-core22 instead of bundling Mesa drivers #465

Description

@axpnet

Problem

Snapcraft's GPU linter reports that the AeroFTP core22 snap primes its own Mesa DRI/EGL/GLX/libdrm stack. The current package contains usr/lib/x86_64-linux-gnu/dri/*_dri.so, libEGL_mesa, libGLX_mesa, libgbm, and vendor libdrm libraries even though hardware-specific userspace should come from a graphics content provider.

Canonical's current guidance recommends the graphics-core22 content interface with mesa-core22, the maintained wrapper, and cleanup helper. This matters beyond package size: shipping a private Mesa stack can conflict with host/NVIDIA userspace and was visible while diagnosing the confined WebKit GUI regression in #462 / PR #463.

Official guide: https://ubuntu.com/frame/docs/22/how-to/use-snap-graphics/

Acceptance criteria

  • Add a graphics-core22 content plug targeting $SNAP/graphics, default provider mesa-core22.
  • Run the maintained graphics-core22-wrapper in the app command chain without breaking the GNOME extension's desktop launcher.
  • Add the official graphics-core22-cleanup part after AeroFTP and remove provider-owned Mesa/DRI/GLVND/libdrm files from the primed app snap.
  • Add the documented X11/libdrm layouts required by the wrapper.
  • Confirm snapcraft lint no longer emits gpu: warnings for bundled drivers; assess remaining library-linter warnings individually (dynamic loading vs genuinely unused) rather than blanket-ignore them.
  • CI: G1 ABI, G2 installed CLI payload, and G3 confined GUI readiness under Xvfb all pass.
  • Validate on a real GPU-capable disposable CI/VM path as a separate acceleration check; do not use the owner's desktop session.
  • Do not publish to the Snap Store until the migration and GUI gates are green.

Scope note

PR #463 should first restore a renderable confined GUI and prove startup. This issue owns the larger graphics-provider migration so it can be reviewed and validated independently rather than combining two runtime architecture changes in one recovery PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CI/CDCI/CD pipeline and release infrastructureinternal

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions