{
 "app_id": "net.openra.OpenRA",
 "source_url": "https://raw.githubusercontent.com/flathub/net.openra.OpenRA/master/net.openra.OpenRA.yaml",
 "runtime": "org.freedesktop.Platform",
 "runtime_version": "25.08",
 "sdk": "org.freedesktop.Sdk",
 "finish_args": [
  "--share=ipc",
  "--share=network",
  "--socket=fallback-x11",
  "--socket=pulseaudio",
  "--socket=wayland",
  "--device=dri",
  "--filesystem=xdg-run/app/com.discordapp.Discord:ro",
  "--filesystem=/media:ro",
  "--filesystem=/run/media:ro",
  "--filesystem=xdg-run/app/com.discordapp.DiscordCanary:ro"
 ],
 "module_count": 4,
 "fetched_at": "2026-09-17T16:13:36.898753+00:00",
 "manifest": {
  "app-id": "net.openra.OpenRA",
  "runtime": "org.freedesktop.Platform",
  "runtime-version": "25.08",
  "sdk": "org.freedesktop.Sdk",
  "command": "openra-ra",
  "rename-desktop-file": "net.openra.OpenRA-ra.desktop",
  "rename-icon": "net.openra.OpenRA-ra",
  "sdk-extensions": [
   "org.freedesktop.Sdk.Extension.dotnet6"
  ],
  "finish-args": [
   "--socket=wayland",
   "--socket=fallback-x11",
   "--share=ipc",
   "--socket=pulseaudio",
   "--device=dri",
   "--share=network",
   "--persist=.openra",
   "--filesystem=/run/media:ro",
   "--filesystem=/media:ro",
   "--filesystem=xdg-run/app/com.discordapp.Discord:ro",
   "--filesystem=xdg-run/app/com.discordapp.DiscordCanary:ro"
  ],
  "build-options": {
   "append-path": "/usr/lib/sdk/dotnet6/bin",
   "append-ld-library-path": "/usr/lib/sdk/dotnet6/lib",
   "append-pkg-config-path": "/usr/lib/sdk/dotnet6/lib/pkgconfig"
  },
  "modules": [
   "shared-modules/lua5.1/lua-5.1.5.json",
   {
    "name": "OpenRA",
    "sources": [
     {
      "type": "archive",
      "strip-components": 0,
      "url": "https://github.com/OpenRA/OpenRA/releases/download/release-20250330/OpenRA-release-20250330-source.tar.bz2",
      "sha256": "496a3d0b457dd8d5f53807e740e984278167292882e0ec3566d5add2d3fdf05f",
      "x-checker-data": {
       "type": "json",
       "url": "https://api.github.com/repos/OpenRA/OpenRA/releases",
       "version-query": "[.[].tag_name | select(startswith(\"release-\"))] | sort_by(split(\"-\")[1:])[-1]",
       "url-query": ".[].assets[] | select(.name == \"OpenRA-\" + $version + \"-source.tar.bz2\").browser_download_url"
      }
     },
     {
      "type": "file",
      "path": "nuget.config.xml",
      "dest-filename": "nuget.config"
     },
     "nuget-sources.json",
     {
      "type": "file",
      "path": "IP2LOCATION-LITE-DB1.IPV6.BIN.ZIP"
     },
     {
      "type": "script",
      "commands": [
       "# NOP"
      ],
      "dest-filename": "fetch-geoip.sh"
     },
     {
      "type": "file",
      "path": "openra.metainfo.xml.in"
     }
    ],
    "build-options": {
     "arch": {
      "aarch64": {
       "env": {
        "RUNTIME": "linux-arm64"
       }
      },
      "x86_64": {
       "env": {
        "RUNTIME": "linux-x64"
       }
      }
     }
    },
    "buildsystem": "simple",
    "build-commands": [
     "if git rev-parse 2>/dev/null; then make version; fi",
     "make prefix=/app TARGETPLATFORM=\"${RUNTIME}\" all",
     "rm bin/freetype6.so bin/lua51.so bin/SDL2.so bin/soft_oal.so",
     "./configure-system-libraries.sh",
     "make prefix=/app install install-linux-shortcuts",
     "rm /app/lib/openra/freetype6.so /app/lib/openra/lua51.so /app/lib/openra/SDL2.so /app/lib/openra/soft_oal.so",
     "mv bin/*.so /app/lib/openra/",
     "# Set version and release date in our custom Metainfo and install it\nset -e\nversion=\"$(cat VERSION)\"\n# Extract release date from release version (e.g. release-20200503)\ndate=\"$(sed -ne 's/^.*-\\([0-9]\\{4\\}\\)\\([0-9]\\{2\\}\\)\\([0-9]\\{2\\}\\)$/\\1-\\2-\\3/p' <<<\"$version\")\"\nif [ -z \"$date\" ]; then\n  # Use date of git commit as fallback (e.g. building a dev version)\n  date=\"$(git log -1 --date=short --format=%cd)\"\nfi\nsed -e \"s/{RELEASE_VERSION}/${version}/g\" -e \"s/{RELEASE_DATE}/${date}/g\" openra.metainfo.xml.in >openra.metainfo.xml\ninstall -Dm0644 -t /app/share/metainfo openra.metainfo.xml\n"
    ]
   },
   {
    "name": "wrapper",
    "buildsystem": "simple",
    "sources": [
     {
      "type": "script",
      "commands": [
       "for socket in discord-ipc-{0..9}; do\n  for socket_path in \"${XDG_RUNTIME_DIR}\"/app/com.discordapp.Discord{Canary,}/\"${socket}\"; do\n    link_path=\"${XDG_RUNTIME_DIR}/${socket}\"\n    if [ ! -e \"${link_path}\" ]; then\n      ln -sf \"${socket_path}\" \"${link_path}\"\n    fi\n  done\ndone\n",
       "exec \"$0.real\" \"$@\""
      ],
      "dest-filename": "wrapper"
     }
    ],
    "build-commands": [
     "install -Dm0755 -t /app/bin wrapper",
     "set -e\nfor f in openra-{ra,cnc,d2k}{,-server}; do\n  mv \"/app/bin/$f\" \"/app/bin/$f.real\"\n  ln -s wrapper \"/app/bin/$f\"\ndone\n"
    ]
   },
   {
    "name": "export",
    "buildsystem": "simple",
    "build-commands": [
     "sed -i 's/\\(<launchable\\(\\s[^>]*\\)\\?>\\)openra\\(-[^<]*\\.desktop<\\)/\\1net.openra.OpenRA\\3/g' /app/share/metainfo/openra.metainfo.xml",
     "sed -i 's/Icon=openra/Icon=net.openra.OpenRA/' /app/share/applications/openra-{ra,cnc,d2k}.desktop",
     "set -e\nfor f in /app/share/icons/hicolor/*/apps/openra-{ra,cnc,d2k}.* \\\n         /app/share/applications/openra-{ra,cnc,d2k}.desktop \\\n         /app/share/mime/packages/openra-{ra,cnc,d2k}.xml \\\n         /app/share/metainfo/openra.metainfo.xml\ndo\n  mv \"$f\" \"${f/openra/net.openra.OpenRA}\"\ndone\n"
    ]
   }
  ]
 }
}