2022-07-06 17:53:51 +00:00
app-id : net.retrodeck.retrodeck
runtime : org.kde.Platform
runtime-version : 5.15 -21.08
sdk : org.kde.Sdk
# Needed for rpcs3
sdk-extensions :
- org.freedesktop.Sdk.Extension.llvm13
# /Needed for rpcs3
# 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
- --filesystem=/media
- --allow=multiarch
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.login1
- --filesystem=xdg-run/app/com.discordapp.Discord:create
# Yuzu
# - --filesystem=home:ro # This may break Yuzu, let's see
# - --filesystem=/run/media:ro
# Dolphin
- --allow=bluetooth
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
# rpcs3
- --socket=fallback-x11
cleanup :
# ES-DE
- /include
- /share/ffmpeg
- /lib/cmake
#- /lib/debug
- /lib/pkgconfig
# 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 :
# This module is used to define the RetroDECK version
# If the version is set as cooker it will automatically generate the version tag based on the date
# else it will just put what is written, "v" is not needed
# The version number is stored in /var/conf/retrodeck/version
#
# UPDATE STEPS FOR MAIN:
# [X] Update the VERSION variable
# [X] Update the appdata.xml with the version number and notes
# [X] change branch into main in retrodeck module (last one)
#
- name : version-initialization
buildsystem : simple
build-commands :
- |
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
VERSION="0.4.3b"
if [[ $VERSION == "cooker" ]];
then
VERSION=$(git describe --tags | tr - .)
fi
echo $VERSION >> ${FLATPAK_DEST}/retrodeck/version
cat ${FLATPAK_DEST}/retrodeck/version
sources :
- type : git
url : https://github.com/XargonWan/RetroDECK.git
branch : cooker
- 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 : [ '*' ]
# mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails,
# this affects even the shared-modules's glu so I have to replace it temporarly
# more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335
- name : glu
buildsystem : meson
cleanup :
- /include
- /lib/debug
- /lib/pkgconfig
- /lib/*.a
sources :
- type : archive
url : https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.2.tar.xz
sha256 : 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4
- name : libgudev
buildsystem : meson
config-opts :
- -Dtests=disabled
- -Dvapi=disabled
- -Dintrospection=disabled
- -Dgtk_doc=false
cleanup :
- /include
- /etc
- /libexec
- /sbin
- /lib/pkgconfig
- /lib/systemd
- /man
- /share/aclocal
- /share/doc
- /share/gtk-doc
- /share/man
- /share/pkgconfig
- '*.la'
- '*.a'
sources :
- type : archive
url : https://ftp.osuosl.org/pub/blfs/conglomeration/libgudev/libgudev-237.tar.xz
sha256 : 0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa
# ES-DE - START
# https://gitlab.com/es-de/emulationstation-de
- name : ffmpeg
config-opts :
- --disable-static
- --disable-programs
- --disable-doc
- --enable-gpl
- --enable-shared
- --enable-libvorbis
- --enable-libopus
- --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-ninja
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
# When updating this module remember to check those: https://gitlab.com/es-de/emulationstation-de/-/tree/stable-1.2.5/resources/systems/unix
# But we don't include them 1:1 as RetroDECK got some specific configs in some cases
- name : emulationstation-de
buildsystem : cmake-ninja
cleanup :
- es-app
- es-core
sources :
- type : git
url : https://gitlab.com/es-de/emulationstation-de
branch : 5a76fef25ffc659f098ee65215281c51a63c3198
- type : shell
commands :
- sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp
- sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK
v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g'
es-app/src/guis/GuiMenu.cpp
# 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
commit : 7fb9f567892a357651bbc6a2b6af3d1085a10ffb
# External manifests start
# RetroArch - START
# 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 : 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38
- 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
modules :
- rd-submodules/retroarch/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
# certificate glu issue
#- shared-modules/gudev/gudev.json
- rd-submodules/retroarch/libbz2/libbz2-1.0.8.json
- rd-submodules/retroarch/xrandr/xrandr-1.5.1.json
- rd-submodules/retroarch/libaio/libaio-0.3.112.json
# certificate issue, check libglu module for more info
#- shared-modules/glu/glu-9.json
- rd-submodules/retroarch/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
branch : 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38
- 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
branch : 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38
- 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 : f3b10ec262fcbd78da3473f46d244270d12a327e
- name : libretro-core-info
make-install-args :
- PREFIX=${FLATPAK_DEST}
sources :
- type : git
url : https://github.com/libretro/libretro-core-info.git
commit : 06dac6318c067a6a40e2ea1e1260e74681ada844
- name : retroarch-joypad-autoconfig
make-install-args :
- PREFIX=${FLATPAK_DEST}
sources :
- type : git
url : https://github.com/libretro/retroarch-joypad-autoconfig.git
commit : 760b057f1865a827762a54a8a32afda2cdd9e170
# - 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: 148c57d9747f5db124135501ac280b5ca129a83f
# - name: glsl-shaders
# make-install-args:
# - PREFIX=${FLATPAK_DEST}
# sources:
# - type: git
# url: https://github.com/libretro/glsl-shaders.git
# commit: 8f6b2649489760caea8f36ec6099998854059569
# - 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/
sources :
- type : archive
url : https://buildbot.libretro.com/stable/1.10.3/linux/x86_64/RetroArch_cores.7z
sha256 : 33abf39839687f8faba202ed5dcf3a54c06266a49fad35f0521fa445523d009f
# Yuzu - START
# https://github.com/flathub/org.yuzu_emu.yuzu
# WHEN UPADTING: remember to update rd-submodules/yuzu contents
- name : libzip
buildsystem : cmake-ninja
config-opts :
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources :
- type : archive
2022-07-07 12:39:23 +00:00
url : https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz
sha256 : 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f
2022-07-06 17:53:51 +00:00
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 :
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
- -DFMT_TEST=OFF
sources :
- type : archive
2022-07-07 12:39:23 +00:00
url : https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip
sha256 : 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d
2022-07-06 17:53:51 +00:00
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
2022-07-07 12:39:23 +00:00
url : https://github.com/KhronosGroup/glslang/archive/11.9.0.tar.gz
sha256 : d5744adba19eef9ad3d73f524226b39fec559d94cb582cd442e3c5de930004b2
2022-07-06 17:53:51 +00:00
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_INSTALL_EXTRAS=ON
- -DCATCH_BUILD_TESTING=OFF
builddir : true
sources :
- type : archive
2022-07-07 12:39:23 +00:00
url : https://github.com/catchorg/Catch2/archive/v2.13.9.tar.gz
sha256 : 06dbc7620e3b96c2b69d57bf337028bf245a211b3cddb843835bfe258f427a52
2022-07-06 17:53:51 +00:00
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
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
- -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 : 11152
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.79.0/source/boost_1_79_0.tar.bz2
sha256 : 475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39
x-checker-data :
type : anitya
project-id : 6845
url-template : >-
https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_79_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=1039
- -DBUILD_TAG=mainline-1039
- -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 ../dist/yuzu.svg
/app/share/icons/hicolor/scalable/apps/yuzu.svg
sources :
- type : git
url : https://github.com/yuzu-emu/yuzu-mainline.git
2022-07-07 12:39:23 +00:00
tag : mainline-0-1039
commit : 983afc5328725109a1cf13c61103b8a553c005d0
2022-07-06 17:53:51 +00:00
disable-shallow-clone : true
x-checker-data :
type : git
tag-pattern : ^(mainline-0-\d+)$
- type : file
path : rd-submodules/yuzu/yuzu-launcher.sh
- type : file
path : rd-submodules/yuzu/compatibility_list.json
# Yuzu - END
2022-07-08 07:07:20 +00:00
# CITRA - START
- name : citra
buildsystem : cmake-ninja
builddir : true
config-opts :
- -DCMAKE_BUILD_TYPE=Release
- -DENABLE_QT_TRANSLATION=ON
- -DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON
- -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON
#- '-DENABLE_FFMPEG_VIDEO_DUMPER=ON'
# Disabled because of this: https://github.com/citra-emu/citra/issues/5949
- -DENABLE_FDK=ON
cleanup :
- /share/man
- /share/pixmaps
post-install :
- >-
install -Dm644 ../dist/citra.svg
/app/share/icons/hicolor/scalable/apps/citra.svg
- >-
install -Dm644 ../dist/icon.png
/app/share/icons/hicolor/512x512/apps/citra.png
sources :
- type : git
url : https://github.com/citra-emu/citra-nightly.git
tag : nightly-1772
commit : 355933218d00603c910cd0a9daead0b1cd72a3c3
disable-shallow-clone : true
x-checker-data :
type : git
tag-pattern : ^(nightly-\d+)$
# CITRA - END
2022-07-06 17:53:51 +00:00
# PCSX2 - START
# 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.7
commit : 7ad1bffa875f7a38db58b6069ea3ff0c49c211d2
x-checker-data :
type : git
tag-pattern : ^v([\d.]+)$
modules :
- name : libaio
no-autogen : true
make-install-args :
- prefix=${FLATPAK_DEST}
sources :
- type : git
url : https://pagure.io/libaio.git
tag : libaio-0.3.113
commit : 1b18bfafc6a2f7b9fa2c6be77a95afed8b7be448
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
sources :
- type : git
url : https://github.com/PCSX2/pcsx2.git
tag : v1.7.2889
commit : a6649b2d6b558806fbe7cbaf6296014e3c5c192e
# PCSX2 Flathub Workaround - START
# This workaround disables the PCSX2 libraries (disable-submodules: true) and install them separately
# This is only to make it buildable by the flathub builder as normaly it seems not to be needed
disable-submodules : true
- type : git
dest : 3rdparty/xz/xz
url : https://github.com/PCSX2/xz.git
commit : 3d566cd519017eee1a400e7961ff14058dfaf33c
- type : git
dest : 3rdparty/gtest
url : https://github.com/google/googletest.git
commit : e2239ee6043f73722e7aa812a459f54a28552929
- type : git
dest : 3rdparty/fmt/fmt
url : https://github.com/fmtlib/fmt.git
commit : b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9
- type : git
dest : 3rdparty/libchdr/libchdr
url : https://github.com/rtissera/libchdr.git
commit : 5de1a59019815ccdbba0fe07c71b31406d023248
- type : git
dest : 3rdparty/wil
url : https://github.com/microsoft/wil.git
commit : 3018875eaa4f8e3d86cf2da97fd577bae59f3aec
- type : git
dest : 3rdparty/cubeb/cubeb
url : https://github.com/mozilla/cubeb.git
commit : 773f16b7ea308392c05be3e290163d1f636e6024
- type : git
dest : 3rdparty/rapidyaml/rapidyaml
url : https://github.com/biojppm/rapidyaml.git
commit : 213b201d264139cd1b887790197e08850af628e3
- type : git
dest : 3rdparty/imgui/imgui
url : https://github.com/ocornut/imgui.git
commit : 60bea052a92cbb4a93b221002fdf04f0da3698e1
- type : git
dest : 3rdparty/glslang/glslang
url : https://github.com/KhronosGroup/glslang.git
commit : c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5
- type : git
dest : 3rdparty/vulkan-headers
url : https://github.com/KhronosGroup/Vulkan-Headers.git
commit : 52a76fd0a693708eb8c25bd0ab7a1008091f64d4
- type : git
dest : 3rdparty/sdl2/SDL
url : https://github.com/libsdl-org/SDL.git
commit : 53dea9830964eee8b5c2a7ee0a65d6e268dc78a1
- type : git
dest : 3rdparty/libzip/libzip
url : https://github.com/nih-at/libzip.git
commit : bdc03ab23b703fcc516436d6ebcbfb6ac4484033
- type : git
dest : 3rdparty/zstd/zstd
url : https://github.com/facebook/zstd.git
commit : e47e674cd09583ff0503f0f6defd6d23d8b718d3
# PCSX2 Flathub Workaround - END
# PCSX2 - END
# Dolphin - START
# https://github.com/flathub/org.DolphinEmu.dolphin-emu
# WHEN UPADTING: remember to update rd-submodules/yuzu contents
# needed for the emulate bluetooth adapter feature to work
- name : bluez
config-opts :
- --enable-library
- --disable-manpages
- --disable-udev
- --disable-tools
- --disable-cups
- --disable-monitor
- --disable-client
- --disable-systemd
- --disable-a2dp
- --disable-avrcp
- --disable-network
- --with-dbusconfdir=/app/etc
- --with-dbussessionbusdir=/app/usr/lib/system-services
sources :
- type : archive
url : https://www.kernel.org/pub/linux/bluetooth/bluez-5.64.tar.xz
sha256 : ae437e65b6b3070c198bc5b0109fe9cdeb9eaa387380e2072f9de65fe8a1de34
x-checker-data :
type : anitya
project-id : 10029
stable-only : true
url-template : https://www.kernel.org/pub/linux/bluetooth/bluez-$version.tar.xz
# enables motion controls on non-wii controllers (switch, ps4, etc)
# requires a udev rule enabling Motion Sensors access
- name : libevdev
buildsystem : meson
config-opts :
- -Dtests=disabled
- -Ddocumentation=disabled
sources :
- type : archive
url : https://www.freedesktop.org/software/libevdev/libevdev-1.12.1.tar.xz
sha256 : 1dbba41bc516d3ca7abc0da5b862efe3ea8a7018fa6e9b97ce9d39401b22426c
x-checker-data :
type : anitya
project-id : 20540
stable-only : true
url-template : https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz
# needed for screensaver inhibition
- name : xdg-screensaver-shim
buildsystem : meson
sources :
- type : archive
url : https://github.com/Unrud/xdg-screensaver-shim/archive/0.0.2.tar.gz
sha256 : 0ed2a69fe6ee6cbffd2fe16f85116db737f17fb1e79bfb812d893cf15c728399
- name : dolphin-emu
buildsystem : cmake-ninja
config-opts :
- -DCMAKE_BUILD_TYPE=Release
- -DENABLE_ALSA=OFF
- -DENABLE_SDL=ON
- -DENABLE_EVDEV=ON
- -DDISTRIBUTOR=Flathub
cleanup :
- /share/man
post-install :
- install -D dolphin-emu-wrapper /app/bin/dolphin-emu-wrapper
- sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
sources :
- type : git
url : https://github.com/dolphin-emu/dolphin.git
commit : 8335ec70e5fe253eb21509408ca6b5736ed57dfc
# detects whether dolphin is running in a flatpak sandbox
# and makes it use xdg directories if it is.
# prevents dolphin from attempting to write conf files
# in non-writable paths, typically happens when a user
# has leftover files from a previous non-flatpak install
- type : patch
path : rd-submodules/dolphin/detectflatpak.patch
# version strings must match exactly for online multiplayer
- type : patch
path : rd-submodules/dolphin/nodirtyversion.patch
- type : script
commands :
- for i in {0..9}; do
- test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
- done
# use gtk3 filechooser on steamdeck
- bv=`cat /sys/devices/virtual/dmi/id/board_vendor`
- bv=$bv`cat /sys/devices/virtual/dmi/id/board_name`
- if [[ $bv == "ValveJupiter" ]]; then
- QT_QPA_PLATFORMTHEME=gtk3 dolphin-emu "$@"
- else
- dolphin-emu "$@"
- fi
dest-filename : dolphin-emu-wrapper
# Dolphin - END
# XEMU - START
# https://github.com/flathub/app.xemu.xemu
# certificate issue, check libglu module for more info
# - name: libglu
# buildsystem: meson
# cleanup:
# - /include
# - /lib/debug
# - /lib/pkgconfig
# - /lib/*.a
# sources:
# - type: archive
# url: http://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz
# sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4
# x-checker-data:
# type: anitya
# project-id: 13518
# stable-only: true
# url-template: http://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz
- name : PyYAML
buildsystem : simple
build-commands :
- python3 setup.py install --prefix=/app --root=/
sources :
- type : archive
url : https://github.com/yaml/pyyaml/archive/refs/tags/6.0.tar.gz
sha256 : f33eaba25d8e0c1a959bbf00655198c287dfc5868f5b7b01e401eaa1796cc778
- name : xemu
buildsystem : autotools
builddir : true
no-make-install : true
build-options :
cflags : -O3 -DXBOX=1 -Wno-error=redundant-decls
config-opts :
- --audio-drv-list=sdl
- --disable-werror
- --target-list=i386-softmmu
make-args :
- qemu-system-i386
post-install :
- |-
for px in 16 32 48 64 128 256 512; do
install -Dm644 ../ui/icons/xemu_${px}x${px}.png /app/share/icons/hicolor/${px}x${px}/apps/app.xemu.xemu.png
done
- install -Dm644 ../ui/icons/xemu.svg /app/share/icons/hicolor/scalable/apps/app.xemu.xemu.svg
- mv qemu-system-i386 /app/bin/xemu
- mkdir -p /app/share/licenses/xemu
- cd .. && python3 scripts/gen-license.py > /app/share/licenses/xemu/LICENSE.txt
sources :
- type : git
url : https://github.com/mborgerson/xemu.git
tag : v0.7.58
commit : 6f878ede01ad1992392dde22b506a3c00fab87c4
x-checker-data :
type : json
url : https://api.github.com/repos/mborgerson/xemu/releases/latest
tag-query : .tag_name
version-query : $tag | sub("^gh-release/"; "")
timestamp-query : .published_at
# XEMU - END
# MELONDS - START
# https://github.com/flathub/net.kuribo64.melonDS
# ちっちゃい、かわいい!
- name : libslirp
buildsystem : meson
sources :
- type : git
url : https://gitlab.freedesktop.org/slirp/libslirp.git
tag : v4.4.0
- name : melonds
buildsystem : cmake-ninja
builddir : true
build-options :
arch :
aarch64 :
config-opts :
- -DENABLE_OGLRENDERER=OFF
sources :
- type : git
url : https://github.com/Arisotura/melonDS.git
commit : cce9de5ee1f51e906a644922b2ada6644d81287a
# MELONDS - END
# RPCS3 - START
# https://github.com/flathub/net.rpcs3.RPCS3
# glu issue, check libglu module for more info
#- shared-modules/glu/glu-9.json
- shared-modules/glew/glew.json
- name : rpcs3-llvm
buildsystem : cmake-ninja
builddir : true
build-options :
cflags : &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection -fno-omit-frame-pointer
cflags-override : true
cxxflags : -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection -fno-omit-frame-pointer -msse -msse2 -mcx16
cxxflags-override : true
env :
AR : llvm-ar
CC : clang
CXX : clang++
RANLIB : llvm-ranlib
ldflags : -fuse-ld=lld
prepend-ld-library-path : /usr/lib/sdk/llvm13/lib
prepend-path : /usr/lib/sdk/llvm13/bin
config-opts :
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_SHARED_LIBS=OFF
- -DLLVM_CCACHE_BUILD=ON
- -DLLVM_TARGETS_TO_BUILD='X86'
- -DLLVM_BUILD_RUNTIME=OFF
- -DLLVM_BUILD_TOOLS=OFF
- -DLLVM_INCLUDE_DOCS=OFF
- -DLLVM_INCLUDE_EXAMPLES=OFF
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_INCLUDE_TOOLS=OFF
- -DLLVM_INCLUDE_UTILS=OFF
- -DLLVM_USE_INTEL_JITEVENTS=ON
- -DLLVM_USE_PERF=ON
- -DLLVM_ENABLE_Z3_SOLVER=OFF
- -DCMAKE_CXX_STANDARD=17
- -DITTAPI_SOURCE_DIR=/run/build/rpcs3-llvm/ittapi
- -Wno-dev
cleanup :
- '*'
sources :
- type : git
url : https://github.com/RPCS3/llvm-mirror.git
commit : 509d31ad89676522f7121b3bb8688f7d29b7ee60
- type : git
url : https://github.com/intel/ittapi.git
dest : ittapi/ittapi
disable-shallow-clone : true
- name : rpcs3
buildsystem : cmake-ninja
builddir : true
build-options :
append-ld-library-path : /usr/lib/sdk/llvm13/lib
append-path : /usr/lib/sdk/llvm13/bin
cflags : *optflags
cflags-override : true
cxxflags : *optflags
cxxflags-override : true
env :
AR : llvm-ar
CC : clang
CXX : clang++
RANLIB : llvm-ranlib
ldflags : -fuse-ld=lld
config-opts :
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DBUILD_LLVM_SUBMODULE=OFF
- -DUSE_NATIVE_INSTRUCTIONS=OFF
- -DUSE_PRECOMPILED_HEADERS=OFF
- -DUSE_SYSTEM_CURL=ON
- -DUSE_SYSTEM_FFMPEG=ON
- -DUSE_SYSTEM_LIBPNG=ON
- -DUSE_SYSTEM_ZLIB=ON
- -Wno-dev
post-install :
- |
set -eux;
COMM_TAG="$(awk -F'[\{,]' '/version{.*}/{printf "%d.%d.%d", $2, $3, $4}' ../rpcs3/rpcs3_version.cpp)";
COMM_COUNT="$(git rev-list --count HEAD)";
COMM_HASH="$(git rev-parse --short=8 HEAD)";
sources :
- type : git
url : https://github.com/RPCS3/rpcs3.git
commit : e9570d1a0045926f63ec8ea9af68f81743d4f365
# RPCS3 - END
# PRIMEHACK - START
# https://github.com/flathub/io.github.shiiion.primehack
# Disabled because it's overwriting Dolphin
# - name: primehack
# buildsystem: cmake-ninja
# config-opts:
# - -DCMAKE_BUILD_TYPE=Release
# - -DENABLE_ALSA=OFF
# - -DENABLE_SDL=ON
# - -DENABLE_EVDEV=ON
# - -DDISTRIBUTOR=Flathub
# cleanup:
# - /share/man
# post-install:
# - install -D dolphin-emu-wrapper /app/bin/dolphin-emu-wrapper
# - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
# sources:
# - type: git
# url: https://github.com/shiiion/dolphin.git
# commit: 9ca0eb888bd6f8ed13a4efb92d808fbf0705ffa4
# # detects whether dolphin is running in a flatpak sandbox
# # and makes it use xdg directories if it is.
# # prevents dolphin from attempting to write conf files
# # in non-writable paths, typically happens when a user
# # has leftover files from a previous non-flatpak install
# - type: patch
# path: rd-submodules/primehack/detectflatpak.patch
# # version strings must match exactly for online multiplayer
# - type: patch
# path: rd-submodules/primehack/nodirtyversion.patch
# - type: script
# commands:
# - for i in {0..9}; do
# - test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
# - done
# - dolphin-emu "$@"
# dest-filename: dolphin-emu-wrapper
# PRIMEHACK - END
# PPSSPP - START
# https://github.com/flathub/org.ppsspp.PPSSPP
- name : ppsspp
buildsystem : cmake-ninja
config-opts :
- -DUSE_SYSTEM_FFMPEG=OFF # turn this on?
- -DUSE_SYSTEM_LIBZIP=ON
- -DUSE_SYSTEM_ZSTD=ON
- -DUSE_WAYLAND_WSI=ON
- -DUSING_X11_VULKAN=ON
- -DUSING_QT_UI=OFF
- -DBUILD_TESTING=OFF
- -DOpenGL_GL_PREFERENCE=GLVND
build-options :
- -DX86_64=ON
sources :
- type : git
url : https://github.com/hrydgard/ppsspp.git
tag : v1.12.3
commit : ce0a45cf0fcdd5bebf32208b9998f68dfc1107b7
disable-submodules : true # Part of the PPSSPP Flathub Workaround
x-checker-data :
type : git
tag-pattern : ^v([\d.]+)$
# PPSSPP Flathub Workaround - START
# This workaround disables the PPSSPP libraries (disable-submodules: true) and install them separately
# This is only to make it buildable by the flathub builder as normaly it seems not to be needed
- type : git
dest : SDL/macOS
commit : f19a1d54b8a5af6cc378ea307e0ec676922eb4cc
url : https://github.com/hrydgard/ppsspp-mac-sdl
- type : git
dest : assets/debugger
commit : 36ad6b19b22de2075a01a4f0c765e3ef514dc38f
url : https://github.com/unknownbrackets/ppsspp-debugger.git
- type : git
dest : dx9sdk
commit : 7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93
url : https://github.com/hrydgard/minidx9.git
- type : git
dest : ext/SPIRV-Cross
commit : 9acb9ec31f5a8ef80ea6b994bb77be787b08d3d1
url : https://github.com/KhronosGroup/SPIRV-Cross.git
- type : git
dest : ext/armips
commit : 7885552b208493a6a0f21663770c446c3ba65576
url : https://github.com/Kingcom/armips.git
- type : git
dest : ext/discord-rpc
commit : 963aa9f3e5ce81a4682c6ca3d136cddda614db33
url : https://github.com/discordapp/discord-rpc.git
- type : git
dest : ext/glslang
commit : dc11adde23c455a24e13dd54de9b4ede8bdd7db8
url : https://github.com/hrydgard/glslang.git
- type : git
dest : ext/miniupnp
commit : 3a87be33e797ba947b2b2a5f8d087f6c3ff4d93e
url : https://github.com/hrydgard/miniupnp.git
- type : git
dest : ext/native/tools/prebuilt
commit : cbea79dc8fef4d9210e2bac7e7b9b5ff3388197a
url : https://github.com/hrydgard/ppsspp-freetype.git
- type : git
dest : ext/rapidjson
commit : 73063f5002612c6bf64fe24f851cd5cc0d83eef9
disable-submodules : true
url : https://github.com/Tencent/rapidjson.git
- type : git
dest : ext/zstd
commit : a488ba114ec17ea1054b9057c26a046fc122b3b6
url : https://github.com/facebook/zstd.git
- type : git
dest : ffmpeg
commit : 3ad7ddb9eb2af898dce8c4b5e9a28b77b3f7ddd7
url : https://github.com/hrydgard/ppsspp-ffmpeg.git
- type : git
dest : pspautotests
commit : 682a4303aba63a50c91ae0fa6928c9dac8ca9b92
url : https://github.com/hrydgard/pspautotests.git
# PPSSPP Flathub Workaround - END
# PPSSPP - END
# External manifests end
- name : retrodeck
buildsystem : simple
build-commands :
# Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon
- rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml
- cp es-configs/es_find_rules.xml /app/share/emulationstation/resources/systems/unix/
- rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml
- cp es-configs/es_systems.xml /app/share/emulationstation/resources/systems/unix/
# These must be put in home folder, managed by retrodeck.sh
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
# Logo, res
- rm -f /app/share/emulationstation/resources/graphics/splash.svg
- cp res/splash.svg /app/share/emulationstation/resources/graphics/splash.svg
- cp res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
# Tools
- mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
- cp tools/* ${FLATPAK_DEST}/retrodeck/tools/
- mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
- cp retrodeck.sh /app/bin/retrodeck.sh
- chmod +x /app/bin/retrodeck.sh
# Desktop entry
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
# TODO: group the configs per-emu and optimize the following cps, like already done with Dolphin. Please not that some files may be renamed, check retrodeck.sh to know how (and fix it after the edit)
2022-07-10 09:21:54 +00:00
# Initializing default emulator configs
- cp -r emu-configs ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-07-06 17:53:51 +00:00
# Overlays
#- cp -r overlays ${FLATPAK_DEST}/retrodeck/overlays Disabled in 0.4.2b as it will be introduced in 0.5.0b
# Placing appdata
- mkdir -p ${FLATPAK_DEST}/share/appdata
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
sources :
- type : git
url : https://github.com/XargonWan/RetroDECK.git
2022-07-09 18:32:58 +00:00
branch : main