app-id: com.xargon.retrodeck runtime: org.kde.Platform runtime-version: '5.15-21.08' sdk: org.kde.Sdk command: retrodeck.sh finish-args: - --socket=x11 - --socket=wayland - --socket=pulseaudio - --share=ipc - --share=network - --device=all - --filesystem=~/retrodeck:create - --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 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 # nope: remember to put ' /org.libretro.RetroArch/' as submodules prefix - 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: org.libretro.RetroArch.appdata.xml - type: file path: 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 #- shared-modules/libusb/libusb.json #- 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=963' # - '-DBUILD_TAG=mainline-963' # - '-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-963 # commit: 15bf148daf441e69265ea99771e0f1d327c5c10e # disable-shallow-clone: true # x-checker-data: # type: git # tag-pattern: ^(mainline-0-\d+)$ # - type: file # path: org.yuzu_emu.yuzu.metainfo.xml # - type: file # path: yuzu-launcher.sh # - type: file # path: compatibility_list.json # Yuzu - END # Ryujinx # Xemu # Rpcs3 # pcsx2 # vita3k # dolphin # arduboy # 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 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