app-id: com.xargon.retrodeck runtime: org.kde.Platform runtime-version: '5.15-21.08' sdk: org.kde.Sdk # Needed for Yuzu base: io.qt.qtwebengine.BaseApp base-version: 5.15-21.08 # /Needed for Yuzu command: retrodeck.sh finish-args: - --socket=x11 - --socket=wayland - --socket=pulseaudio - --share=ipc - --share=network - --device=all - --filesystem=~/retrodeck:create - --filesystem=/run/media/mmcblk0p1 - --allow=multiarch - --talk-name=org.freedesktop.ScreenSaver - --talk-name=org.freedesktop.PowerManagement.Inhibit - --talk-name=org.freedesktop.login1 #- --filesystem=host - --filesystem=xdg-run/app/com.discordapp.Discord:create # Yuzu - --filesystem=home:ro - --filesystem=/run/media:ro cleanup: # ES-DE - /include - /share/ffmpeg - /lib/cmake - /lib/debug - /lib/pkgconfig - /lib/libfreeimage.a - /lib/libogg.a - /lib/libvpx.a # Yuzu - /include - /bin/glslangValidator - /bin/zip* - /bin/zstd* - /lib/pkg-config - /share/doc - /share/man - /src - '*.a' - '*.la' cleanup-commands: # Yuzu - /app/cleanup-BaseApp.sh modules: - name: xmlstarlet config-opts: - --disable-static-libs - --with-libxml-libs-prefix=/usr/lib - --with-libxml-include-prefix=/usr/include/libxml2 sources: - type: archive url: https://downloads.sourceforge.net/xmlstar/xmlstarlet-1.6.1.tar.gz sha256: 15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca - type: shell commands: - cp -p /usr/share/automake-*/config.{sub,guess} .; - autoreconf -vfi; post-install: - ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:; cleanup: ["*"] - name: kdialog buildsystem: cmake sources: - type: git url: https://github.com/KDE/kdialog.git tag: v22.03.80 # ES-DE - name: fdk-aac buildsystem: cmake sources: - type: git url: https://git.code.sf.net/p/opencore-amr/fdk-aac.git tag: v2.0.2 - name: libvpx config-opts: - --disable-examples - --disable-docs - --enable-pic - --enable-vp9-highbitdepth sources: - type: git url: https://github.com/webmproject/libvpx.git tag: v1.11.0 - name: ogg buildsystem: cmake config-opts: - -DCMAKE_POSITION_INDEPENDENT_CODE=on - -DINSTALL_DOCS=off sources: - type: git url: https://github.com/xiph/ogg.git tag: v1.3.5 - name: vorbis buildsystem: cmake config-opts: - -DBUILD_SHARED_LIBS=on sources: - type: git url: https://gitlab.xiph.org/xiph/vorbis.git tag: v1.3.7 - name: opus buildsystem: cmake config-opts: - -DBUILD_SHARED_LIBS=on sources: - type: git url: https://gitlab.xiph.org/xiph/opus.git tag: v1.3.1 - name: ffmpeg config-opts: - --disable-static - --disable-programs - --disable-doc - --enable-gpl - --enable-nonfree - --enable-shared - --enable-libvorbis - --enable-libopus - --enable-libfdk-aac - --enable-libvpx - --enable-postproc sources: - type: git url: https://github.com/FFmpeg/FFmpeg.git tag: n5.0 - name: freeimage no-autogen: true build-options: cxxflags: -std=c++14 make-args: - DESTDIR=/app sources: - type: archive url: http://downloads.sourceforge.net/freeimage/FreeImage3180.zip sha256: f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd - type: shell commands: - sed -i 's|-o root -g root ||' ./Makefile.gnu - sed -i 's|/usr|/app|' ./Makefile.gnu - name: pugixml buildsystem: cmake config-opts: - -DBUILD_SHARED_LIBS=on . sources: - type: archive url: https://github.com/zeux/pugixml/releases/download/v1.11.4/pugixml-1.11.4.tar.gz sha256: 8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716 - name: emulationstation-de buildsystem: cmake config-opts: - -DCMAKE_INSTALL_PREFIX=/app cleanup: - es-app - es-core sources: - type: git url: https://gitlab.com/leonstyhre/emulationstation-de.git branch: stable-1.2 # ES-DE - END - name: art-book-next buildsystem: simple build-commands: - mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-de/ - mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-de/ sources: - type: git url: https://github.com/anthonycaccese/art-book-next-de.git branch: cba2e914128dd749df53e710b7c1feb9fc7b5cc8 # External manifests start # RetroArch - https://github.com/flathub/org.libretro.RetroArch - name: retroarch config-opts: - '--enable-dbus' make-args: - GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc sources: - type: git url: https://github.com/libretro/RetroArch.git branch: de4e56ecf28a09057734f8624af6d62f3088734f - type: file path: rd-submodules/retroarch/org.libretro.RetroArch.appdata.xml - type: file path: rd-submodules/retroarch/retroarch.cfg post-install: - mkdir -p ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ - >- mv ${FLATPAK_DEST}/share/pixmaps/retroarch.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ - rmdir --ignore-fail-on-non-empty ${FLATPAK_DEST}/share/pixmaps/ - mkdir -p ${FLATPAK_DEST}/etc - >- sed s:@prefix@:${FLATPAK_DEST}:g retroarch.cfg > ${FLATPAK_DEST}/etc/retroarch.cfg - mkdir -p ${FLATPAK_DEST}/share/appdata - cp org.libretro.RetroArch.appdata.xml ${FLATPAK_DEST}/share/appdata modules: - libpng/libpng-1.6.35.json - nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json - shared-modules/SDL/SDL-1.2.15.json - shared-modules/SDL/SDL_image-1.2.12.json - shared-modules/SDL/SDL_mixer-1.2.12.json - shared-modules/SDL/SDL_net-1.2.8.json - shared-modules/SDL/SDL_ttf-2.0.11.json - shared-modules/libusb/libusb.json - shared-modules/gudev/gudev.json - libbz2/libbz2-1.0.8.json - xrandr/xrandr-1.5.1.json - libaio/libaio-0.3.112.json - shared-modules/glu/glu-9.json - libdecor/libdecor-0.1.0.json - name: retroarch-filers-video subdir: gfx/video_filters make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/RetroArch.git commit: de4e56ecf28a09057734f8624af6d62f3088734f - name: retroarch-filers-audio subdir: libretro-common/audio/dsp_filters make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/RetroArch.git commit: de4e56ecf28a09057734f8624af6d62f3088734f - name: retroarch-assets make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/retroarch-assets.git commit: f45dd1351e6bfb9f01e12bee8d358ad22a2bb8f9 - name: libretro-database make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/libretro-database.git commit: 1754130f72d8c00a512797bf85442576258279e8 - name: libretro-core-info make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/libretro-core-info.git commit: 1b2472eca14a5a187ff298ace1b614fd3d47bc7c - name: retroarch-joypad-autoconfig make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/retroarch-joypad-autoconfig.git commit: 0eb3ad2666e6bdc2de2cde4c5d4af29b8c7f2c67 - name: common-shaders make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/common-shaders.git commit: 55e401834b732e62c34411321c4ffd82524345d4 - name: slang-shaders make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/slang-shaders.git commit: 77558d5f2ac807b27201fb888cbf2caee8e289fa - name: glsl-shaders make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/glsl-shaders.git commit: 20801b38aa2c89a2beb9f57ffbbbcea7256e2523 - name: common-overlays make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git url: https://github.com/libretro/common-overlays.git commit: db9744f4e58a740f0f10b04b62af347cd6f01928 # RetroArch - END # Not part of the offical RetroArch manifest - name: retroarch-cores buildsystem: simple build-commands: - mkdir -p /app/share/libretro/cores/ - mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ cleanup: - RetroArch_cores.7z sources: - type: archive url: https://buildbot.libretro.com/stable/1.10.2/linux/x86_64/RetroArch_cores.7z sha256: 0c59f99534a1ae3a2d34b1747c40398325e53db69acfab35b99c8fa8d76430e5 # Yuzu - https://github.com/flathub/org.yuzu_emu.yuzu - name: libzip buildsystem: cmake-ninja config-opts: - '-DCMAKE_BUILD_TYPE=RelWithDebInfo' sources: - type: archive url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f x-checker-data: type: anitya project-id: 10649 url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz - name: zstd buildsystem: simple build-commands: - make -j $FLATPAK_BUILDER_N_JOBS - make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install sources: - type: archive url: >- https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0 x-checker-data: type: anitya project-id: 12083 url-template: >- https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz - name: fmt buildsystem: cmake-ninja config-opts: - '-DFMT_TEST=OFF' sources: - type: archive url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d x-checker-data: type: anitya project-id: 11526 url-template: >- https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip - name: glslang buildsystem: cmake-ninja config-opts: - '-DCMAKE_BUILD_TYPE=Release' sources: - type: archive url: https://github.com/KhronosGroup/glslang/archive/11.8.0.tar.gz sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0 x-checker-data: type: anitya stable-only: true project-id: 205796 url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz - name: catch2 buildsystem: cmake-ninja config-opts: - '-DCMAKE_BUILD_TYPE=Release' - '-DCATCH_BUILD_TESTING=OFF' builddir: true sources: - type: archive url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a x-checker-data: type: anitya stable-only: true project-id: 7680 url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz - name: nlohmann-json buildsystem: cmake-ninja config-opts: - '-DCMAKE_BUILD_TYPE=Release' - '-DJSON_BuildTests=OFF' sources: - type: archive url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4 x-checker-data: type: anitya project-id: 141453 url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz - name: boost buildsystem: simple build-commands: - ./bootstrap.sh --with-libraries=context,container,system,headers - ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app sources: - type: archive url: >- https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc x-checker-data: type: anitya project-id: 6845 url-template: >- https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_0.tar.bz2 - name: nv-codec-headers make-install-args: - PREFIX=/app no-autogen: true cleanup: - '*' sources: - type: git url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git tag: n11.1.5.1 commit: 84483da70d903239d4536763fde8c7e6c4e80784 x-checker-data: type: git tag-pattern: ^n([\d.]+)$ - name: yuzu buildsystem: cmake-ninja builddir: true config-opts: - '-DCMAKE_BUILD_TYPE=RelWithDebInfo' - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON' - '-DENABLE_QT_TRANSLATION=ON' - '-DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON' - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON' - '-DYUZU_USE_QT_WEB_ENGINE=ON' - '-DYUZU_USE_BUNDLED_FFMPEG=ON' - '-DDISPLAY_VERSION=969' - '-DBUILD_TAG=mainline-969' - '-DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline' build-options: env: TITLEBARFORMATIDLE: yuzu {} TITLEBARFORMATRUNNING: yuzu {} | {} LDFLAGS: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed' cleanup: - /share/man - /share/pixmaps post-install: - install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher - >- install -Dm644 ../org.yuzu_emu.yuzu.metainfo.xml /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop - >- desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop - >- install -Dm644 ../dist/yuzu.svg /app/share/icons/hicolor/scalable/apps/yuzu.svg - >- mv /app/share/mime/packages/yuzu.xml /app/share/mime/packages/org.yuzu_emu.yuzu.xml - >- sed 's/yuzu/org.yuzu_emu.yuzu/g' -i /app/share/mime/packages/org.yuzu_emu.yuzu.xml sources: - type: git url: https://github.com/yuzu-emu/yuzu-mainline.git tag: mainline-0-969 commit: d179e12137cd8ff88b0eade7d13de801661f869b disable-shallow-clone: true x-checker-data: type: git tag-pattern: ^(mainline-0-\d+)$ - type: file path: rd-submodules/yuzu/org.yuzu_emu.yuzu.metainfo.xml - type: file path: rd-submodules/yuzu/yuzu-launcher.sh - type: file path: rd-submodules/yuzu/compatibility_list.json # Yuzu - END # pcsx2 - https://github.com/flathub/net.pcsx2.PCSX2 - name: wxWidgets buildsystem: cmake-ninja config-opts: - '-DCMAKE_BUILD_TYPE=Release' cleanup: - /bin - /include - /lib/wx/include sources: - type: git url: https://github.com/wxWidgets/wxWidgets.git tag: v3.1.5 commit: 9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1 x-checker-data: type: git tag-pattern: ^v([\d.]+)$ modules: - shared-modules/glu/glu-9.json - name: libaio no-autogen: true make-install-args: - prefix=${FLATPAK_DEST} sources: - type: git url: https://pagure.io/libaio.git tag: libaio-0.3.112 commit: d025927efa75a0d1b46ca3a5ef331caa2f46ee0e x-checker-data: type: git tag-pattern: ^libaio-([\d.]+)$ cleanup: - /include - /lib/*.a - name: portaudio buildsystem: cmake-ninja config-opts: - '-DCMAKE_BUILD_TYPE=Release' cleanup: - /include - /share/doc - /lib/cmake - /lib/pkgconfig - /lib/*.a sources: - type: git url: https://github.com/PortAudio/portaudio.git tag: v19.7.0 commit: 147dd722548358763a8b649b3e4b41dfffbcfbb6 x-checker-data: type: git tag-pattern: ^v([\d.]+)$ - name: soundtouch buildsystem: cmake-ninja sources: - type: git url: https://codeberg.org/soundtouch/soundtouch.git tag: 2.3.1 commit: e1f315f5358d9db5cee35a7a2886425489fcefe8 x-checker-data: type: git tag-pattern: ^([\d.]+)$ cleanup: - /bin - /include - /lib/cmake - /lib/pkgconfig - /share/doc - /lib/*.a - name: png++ disabled: true buildsystem: simple build-commands: - make - make prefix=/app install sources: - type: archive url: >- https://download.savannah.nongnu.org/releases/pngpp/png++-0.2.10.tar.gz sha256: 998af216ab16ebb88543fbaa2dbb9175855e944775b66f2996fc945c8444eee1 - name: libpcap buildsystem: cmake-ninja sources: - type: git url: https://github.com/the-tcpdump-group/libpcap.git tag: libpcap-1.10.1 commit: c7642e2cc0c5bd65754685b160d25dc23c76c6bd x-checker-data: type: git tag-pattern: ^libpcap-([\d.]+)$ cleanup: - /bin - /include - /share/man - /lib/pkgconfig - /lib/*.a - name: pcsx2 buildsystem: cmake-ninja builddir: true config-opts: - '-DCMAKE_BUILD_TYPE=Release' - '-DPACKAGE_MODE=TRUE' - '-DXDG_STD=TRUE' - '-DDISABLE_BUILD_DATE=TRUE' - '-DDISABLE_PCSX2_WRAPPER=TRUE' - '-DDISABLE_ADVANCE_SIMD=TRUE' - '-DSDL2_API=TRUE' cleanup: - /share/pixmaps - /share/man - /share/doc post-install: - >- desktop-file-edit --set-key=Exec --set-value=pcsx2 /app/share/applications/PCSX2.desktop - >- install -Dm644 ../AppIcon128.png /app/share/icons/hicolor/128x128/apps/PCSX2.png - >- install -Dm644 ../net.pcsx2.PCSX2.metainfo.xml /app/share/metainfo/net.pcsx2.PCSX2.metainfo.xml sources: - type: git url: https://github.com/PCSX2/pcsx2.git tag: v1.7.2554 commit: 0d1675fbaa0d40874df98eed6270efc55620271b - type: file path: rd-submodules/pcsx2/net.pcsx2.PCSX2.metainfo.xml - type: file path: rd-submodules/pcsx2/AppIcon128.png # pcsx2 - END # Ryujinx # Xemu # Rpcs3 # vita3k # dolphin # arduboy # pocket station # cemu - win only: wine # Anbox? # External manifests end - name: retrodeck buildsystem: simple build-commands: # Prep the ES-DE and RetroArch config files - rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml - cp es_find_rules.xml /app/share/emulationstation/resources/systems/unix/ - rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml - cp es_systems.xml /app/share/emulationstation/resources/systems/unix/ # These must be put in home folder, managed by retrodeck.sh - mkdir -p ${FLATPAK_DEST}/retrodeck/ - cp es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml - cp retrodeck-retroarch.cfg ${FLATPAK_DEST}/retrodeck/retrodeck-retroarch.cfg # Logo, res - rm -f /app/share/emulationstation/resources/graphics/splash.svg - cp splash.svg /app/share/emulationstation/resources/graphics/splash.svg - cp icon.svg /app/share/icons/hicolor/scalable/apps/com.xargon.retrodeck.svg # Tools - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/ - cp start-retroarch.sh ${FLATPAK_DEST}/retrodeck/tools/ - cp move-roms.sh ${FLATPAK_DEST}/retrodeck/tools/ - cp tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/ - cp retrodeck.sh /app/bin/retrodeck.sh - chmod +x /app/bin/retrodeck.sh # Desktop entry - cp desktop_entry /app/share/applications/com.xargon.retrodeck.desktop #cleanup: ['*'] sources: - type: file path: es_find_rules.xml - type: file path: es_settings.xml - type: file path: es_systems.xml - type: file path: retrodeck.sh - type: file path: retrodeck-retroarch.cfg - type: file path: tools-gamelist.xml - type: dir path: res - type: dir path: tools - type: file path: desktop_entry