Portability: A Case Study in Flutter & AppImage Distribution

Jul 22, 2026

Werner Scholtz

Couldn't open libGLESv2.so.2: cannot open shared object file: No such file or directory
No provider of eglGetPlatformDisplayEXT found. Requires one of: EGL_EXT_platform_base
[ERROR:flutter/shell/gpu/gpu_surface_gl_skia.cc(83)] Could not make the context current to set up the Gr context.
AppDir:
  files:
    exclude:
      # Prefer host graphics stack to avoid driver/ABI mismatches.
      - usr/lib/x86_64-linux-gnu/libGL*
      - usr/lib/x86_64-linux-gnu/libEGL*
      - usr/lib/x86_64-linux-gnu/libGLES*
      - usr/lib/x86_64-linux-gnu/libgbm*
      - usr/lib/x86_64-linux-gnu/libdrm*
      - usr/lib/x86_64-linux-gnu/libwayland-*
exclude:
      # Keep low-level toolchain/system libs from being forcibly bundled.
      - libc6
      - libstdc++6
      - gcc-12-base
      - libgcc-s1
      - zlib1g
Gtk-Message: Failed to load module "window-decorations-gtk-module"
Gtk:ERROR: ensure_surface_for_gicon: assertion failed: Failed to load /org/gtk/libgtk/icons/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
include:
      # Bundle coherent GTK/pixbuf userspace stack.
      - libgtk-3-0
      - libgdk-pixbuf2.0-0
      - librsvg2-common
      - shared-mime-info
      - hicolor-icon-theme
      # App-specific runtime requirements.
      - libsodium23
      - libsecret-1-0
      - libsqlite3-0
AppDir:
  runtime:
    env:
      # AppDir-first lookup. Missing graphics libs (excluded above) fall back to the host.
      LD_LIBRARY_PATH: $APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
      # Prefer host theme/metadata paths, keep AppDir as fallback.
      XDG_DATA_DIRS: /usr/local/share:/usr/share:$XDG_DATA_DIRS:$APPDIR/usr/share

Tags:

Leave a Comment

Your Email address will not be published