Why are extensions from the add-extensions: section not automatically downloaded via the flatpak-builder --user --repo=local --force-clean --install-deps-from=flathub command?

Here’s a piece of my manifesto

sdk: org.gnome.Sdk
runtime: org.gnome.Platform
runtime-version: "45"
command: portproton
separate-locales: false

sdk-extensions:
   - org.gnome.Sdk.Compat.i386
   - org.freedesktop.Sdk.Extension.toolchain-i386

finish-args:
  - --share=ipc
  - --socket=x11
  - --socket=wayland
  - --device=all
  - --share=network
  - --allow=multiarch
  # For Wine crash handling
  - --allow=devel

add-extensions:

  org.freedesktop.Platform.GL32:
    directory: lib/i386-linux-gnu/GL
    version: '1.4'
    versions: 23.08;23.08-extra;1.4
    subdirectories: true
    no-autodownload: true
    autodelete: false
    add-ld-path: lib
    merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d;OpenCL/vendors;lib/dri;lib/d3d;vulkan/explicit_layer.d
    download-if: active-gl-driver
    enable-if: active-gl-driver

  org.gnome.Platform.Compat.i386:
    directory: lib/i386-linux-gnu
    version: '45'

  org.gnome.Platform.Compat.i386.Debug:
    directory: lib/debug/lib/i386-linux-gnu
    version: '45'
    no-autodownload: true

  org.freedesktop.Platform.ffmpeg-full:
    directory: lib/ffmpeg
    add-ld-path: .
    version: '23.08'
    no-autodownload: true
    autodelete: false

  org.freedesktop.Platform.ffmpeg_full.i386:
    directory: lib32/ffmpeg
    add-ld-path: .
    version: '23.08'
    no-autodownload: true
    autodelete: false

  com.valvesoftware.Steam.Utility:
    subdirectories: true
    directory: utils
    version: stable
    versions: stable;beta;test
    add-ld-path: lib
    merge-dirs: bin
    no-autodownload: true
    autodelete: true

x-compat-i386-opts: &compat_i386_opts
  prepend-pkg-config-path: /app/lib32/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig
  ldflags: -L/app/lib32
  append-path: /usr/lib/sdk/toolchain-i386/bin
  env:
    CC: i686-unknown-linux-gnu-gcc
    CXX: i686-unknown-linux-gnu-g++
  libdir: /app/lib32

cleanup:
  - /include
  - /lib*/pkgconfig
  - /man
  - /share/doc
  - /share/gtk-doc
  - /share/man
  - /share/pkgconfig
  - "*.la"
  - "*.a"
    
modules:

  - name: platform-bootstrap
    buildsystem: simple
    build-commands:
      - |
        set -e
        mkdir -p /app/bin
        mkdir -p /app/utils
        mkdir -p /app/lib/i386-linux-gnu
        mkdir -p /app/lib/debug/lib/i386-linux-gnu
        mkdir -p /app/lib/i386-linux-gnu/GL
        install -Dm644 ld.so.conf /app/etc/ld.so.conf
        install -Dm644 $FLATPAK_ID.metainfo.xml /app/share/metainfo/$FLATPAK_ID.appdata.xml
    sources:
      - type: inline
        dest-filename: ld.so.conf
        contents: |
          /app/lib32
          /app/lib/i386-linux-gnu

When I run flatpak-builder it does not install org.gnome.Platform.Compat.i386, org.freedesktop.Platform.GL32.default, org.freedesktop.Platform.ffmpeg-full and org.freedesktop.Platform.ffmpeg_full.i386 what could be the reason for this behavior ?

Those are runtime extension points, not anything required for build. I’d expect the autodownload extensions would be installed when you actually install the app.

I solved this error by just pre-installing the right stuff, but now I get this error on startup

bwrap: Can’t mkdir /app/lib/ffmpeg: Read-only file system

Create that folder on build?

I looked at how it’s done in wine and heroic and it didn’t have those folders, but I’ll try to create them, thanks for the tip, I’ll post if it works out

Thank you for help its worked