# flatpak-builder manifest for repackaging the official O3DE Linux .deb as a Flatpak. # # The workflow (and scripts/build.sh) download the latest o3de_*.deb to ./o3de.deb # next to this manifest before building, so the manifest itself never needs editing # when a new version drops. id: org.o3de.O3DE runtime: org.freedesktop.Platform runtime-version: '24.08' sdk: org.freedesktop.Sdk command: o3de-wrapper.sh finish-args: - --share=ipc - --share=network # Project Manager fetches gems/templates; engine downloads assets - --socket=x11 - --socket=fallback-x11 - --socket=wayland - --socket=pulseaudio - --device=dri # GPU access for the renderer - --device=all # broader device access (input devices, additional GPUs) - --filesystem=home # O3DE stores projects and ~/.o3de in the user's home - --talk-name=org.freedesktop.Notifications - --env=QT_QPA_PLATFORM=xcb # O3DE's bundled Qt is most reliable under XWayland/X11 modules: - name: o3de buildsystem: simple build-commands: # The .deb is an `ar` archive containing data.tar.{gz,xz,zst}. - ar x o3de.deb - mkdir -p data - tar -C data -xf data.tar.* # The payload lays files out under /opt (engine) and /usr (desktop/icon glue). - 'if [ -d data/opt ]; then mkdir -p "${FLATPAK_DEST}/opt"; cp -a data/opt/. "${FLATPAK_DEST}/opt/"; fi' - 'if [ -d data/usr ]; then cp -a data/usr/. "${FLATPAK_DEST}/"; fi' # Launcher + AppStream + desktop entry under the Flatpak app-id. - install -Dm755 o3de-wrapper.sh "${FLATPAK_DEST}/bin/o3de-wrapper.sh" - install -Dm644 org.o3de.O3DE.desktop "${FLATPAK_DEST}/share/applications/org.o3de.O3DE.desktop" - install -Dm644 org.o3de.O3DE.metainfo.xml "${FLATPAK_DEST}/share/metainfo/org.o3de.O3DE.metainfo.xml" # Pick up an icon from the .deb if one is present and rename it to the app-id. - | icon=$(find data -type f \( -name '*o3de*.png' -o -name '*o3de*.svg' \) 2>/dev/null | head -n1) if [ -n "$icon" ]; then ext="${icon##*.}" install -Dm644 "$icon" "${FLATPAK_DEST}/share/icons/hicolor/256x256/apps/org.o3de.O3DE.${ext}" fi sources: - type: file path: o3de.deb - type: file path: o3de-wrapper.sh - type: file path: org.o3de.O3DE.desktop - type: file path: org.o3de.O3DE.metainfo.xml