RetroDECK/net.retrodeck.retrodeck.yml

1431 lines
49 KiB
YAML
Raw Normal View History

2022-07-06 17:53:51 +00:00
app-id: net.retrodeck.retrodeck
runtime: org.kde.Platform
runtime-version: 5.15-21.08
#runtime-version: 6.3 # bumped because of pcsx2-qt
2022-07-06 17:53:51 +00:00
sdk: org.kde.Sdk
sdk-extensions:
2022-09-14 10:17:47 +00:00
- org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3
2022-08-10 21:13:55 +00:00
- org.freedesktop.Sdk.Extension.dotnet6 # Needed for Ryujinx
base: io.qt.qtwebengine.BaseApp # Needed for Yuzu
base-version: 5.15-21.08 # Needed for Yuzu
2022-07-06 17:53:51 +00:00
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
2022-09-06 12:46:59 +00:00
# The version number is hardcoded in /app/retrodeck/version
2022-07-06 17:53:51 +00:00
#
# UPDATE STEPS FOR MAIN:
2022-10-11 20:05:02 +00:00
# [ ] Update the VERSION variable
# [ ] Update the appdata.xml with the version number and notes
# [ ] change branch into main in version-initialization (first one)
# [ ] change branch into main in retrodeck module (last one)
# [ ] if header (before modules) was edited, edit it even in flathub.yml
2022-07-06 17:53:51 +00:00
#
- name: version-initialization
buildsystem: simple
build-commands:
- |
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
2022-10-31 11:31:15 +00:00
VERSION="cooker-0.5.4b"
2022-07-18 07:54:51 +00:00
if [[ $VERSION == *"cooker"* ]];
2022-07-06 17:53:51 +00:00
then
2022-10-08 13:12:54 +00:00
VERSION="cooker-"$(git rev-parse --short HEAD)
2022-07-06 17:53:51 +00:00
fi
echo $VERSION >> ${FLATPAK_DEST}/retrodeck/version
cat ${FLATPAK_DEST}/retrodeck/version
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
2022-10-31 11:31:15 +00:00
branch: cooker
2022-07-06 17:53:51 +00:00
- 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: ['*']
# pcsx2-qt needs QT6, maybe others, here until every qt emulator will support qt6 (not yuzu atm)
# from: https://github.com/flathub/org.profex_xrd.Profex
2022-08-31 10:07:28 +00:00
# - name: qt6-core5compat
# buildsystem: cmake-ninja
# builddir: true
# sources:
# - type: archive
# url: https://download.qt.io/official_releases/qt/6.2/6.2.4/submodules/qt5compat-everywhere-src-6.2.4.tar.xz
# sha256: 5de2b9e25bf7de161fbb88ecdd468ed1788bc899392fc05ed80aa590ebb352fa
# x-checker-data:
# type: html
# url: https://download.qt.io/official_releases/qt/6.2/
# version-pattern: '>([\d\.-]*)/<'
# url-template: https://download.qt.io/official_releases/qt/6.2/$version/submodules/qt5compat-everywhere-src-$version.tar.xz
# post-install:
# - mkdir -p /app/lib/mkspecs
# - cp -R /app/mkspecs/* /app/lib/mkspecs/
# - ln -fsr ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/libQt*.so* -t ${FLATPAK_DEST}/lib/
# - sed -i 's/\\([0-9]\\+\\.[0-9]\\+\\)\\.[0-9]\\+ ${_Qt6.*_FIND_VERSION_EXACT}/\\1/'
# ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake
# - sed -e 's@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\"
# \"/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/cmake/\" NO_DEFAULT_PATH@' -i
# ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake
# - sed -e 's@\\($$QT_MODULE_BIN_BASE\\)@\\1 '${FLATPAK_DEST}'/bin @' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
# - sed -e 's@\\($$QT_MODULE_INCLUDE_BASE \\)@\\1'${FLATPAK_DEST}'/include @'
# -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
# - sed -e 's@$$QT_MODULE_INCLUDE_BASE/@'${FLATPAK_DEST}'/include/@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
# - sed -e 's@$$QT_MODULE_LIB_BASE@'${FLATPAK_DEST}'/lib@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
# cleanup:
# - /app/mkspecs
2022-07-06 17:53:51 +00:00
# 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
2022-09-21 18:36:12 +00:00
tag: n5.1.1
2022-07-06 17:53:51 +00:00
- 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/v1.2.6/resources/systems/unix
2022-07-06 17:53:51 +00:00
# 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: f8d782f1f3b1fba8a119b793edd01f37e0258953
2022-07-06 17:53:51 +00:00
- 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
# ES-DE Themes - START
2022-07-06 17:53:51 +00:00
- name: art-book-next
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next/
- mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next/
sources:
- type: git
2022-07-03 18:40:57 +00:00
url: https://github.com/anthonycaccese/art-book-next-retropie.git
commit: 23932f484a9949313baf80f92b2fbca38a7a8f37
- name: alekfull-nx-light
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/alekfull-nx-light/
- mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/alekfull-nx-light/
sources:
- type: git
url: https://github.com/anthonycaccese/alekfull-nx-retropie.git
commit: 67c8c8dee086bd06bcdc6dc34bb9bef1e1c11be7
- name: retrofix-revisited
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/retrofix-revisited/
- mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/retrofix-revisited/
2022-07-06 17:53:51 +00:00
sources:
- type: git
url: https://github.com/anthonycaccese/retrofix-revisited-retropie.git
commit: 6e75c9521426e69eb9abcb39d135d97a17d14568
2022-07-06 17:53:51 +00:00
# ES-DE Themes - END
2022-07-06 17:53:51 +00:00
# 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
2022-10-31 11:31:15 +00:00
commit: 840c4481ab7cb0720025c30ea609d16e60927a02
2022-07-06 17:53:51 +00:00
- 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
2022-10-31 11:31:15 +00:00
commit: 840c4481ab7cb0720025c30ea609d16e60927a02
2022-07-06 17:53:51 +00:00
- 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
2022-10-31 11:31:15 +00:00
commit: 840c4481ab7cb0720025c30ea609d16e60927a02
2022-07-06 17:53:51 +00:00
- name: retroarch-assets
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/retroarch-assets.git
commit: ee33f8ef693b42a8e23ca3fd48f43f345e7cd087
2022-07-06 17:53:51 +00:00
- name: libretro-database
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/libretro-database.git
2022-10-31 11:31:15 +00:00
commit: bc488c79cdc36ea1076a2941f2e6e32365d5f53e
2022-07-06 17:53:51 +00:00
- name: libretro-core-info
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/libretro-core-info.git
2022-10-31 11:31:15 +00:00
commit: 7744a25a0e418703e24a4bd7a2208d5a12ae8a7a
2022-07-06 17:53:51 +00:00
- name: retroarch-joypad-autoconfig
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/retroarch-joypad-autoconfig.git
2022-10-31 11:31:15 +00:00
commit: 948fff0a12e487266eebef14774f17b7b881a728
2022-08-10 20:37:16 +00:00
- name: common-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/common-shaders.git
commit: 86cfa146a8dfddf6377ddb5dbcff552feae2e5bf
2022-08-10 20:37:16 +00:00
- name: slang-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/slang-shaders.git
2022-10-31 11:31:15 +00:00
commit: 9e89aafe0f6a63645445ca8302b88e4060274c72
2022-08-10 20:37:16 +00:00
- name: glsl-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/glsl-shaders.git
commit: 46a00f15e09ffbd4fba46ab41f0653aeea918fd1
2022-08-10 20:37:16 +00:00
- name: common-overlays
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/common-overlays.git
commit: e2ba730083769b45bac62d164115e7dc197c8b63
2022-07-06 17:53:51 +00:00
# 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
2022-10-31 11:31:15 +00:00
url: https://buildbot.libretro.com/stable/1.12.0/linux/x86_64/RetroArch_cores.7z
sha256: b5c87aa3462c023fa4e1aa171d1bd4f5b0b5cf9d8e4f0a6b5606ff26b05e0059
2022-03-27 01:34:37 +00:00
# PPSSPP - START
# https://github.com/flathub/org.ppsspp.PPSSPP
- name: ppsspp
buildsystem: cmake-ninja
config-opts:
2022-09-21 21:46:02 +00:00
- -DUSE_SYSTEM_FFMPEG=OFF # default: off, turn this on?
- -DUSE_SYSTEM_LIBZIP=ON
- -DUSE_SYSTEM_ZSTD=ON
- -DUSE_WAYLAND_WSI=ON
2022-10-31 11:31:15 +00:00
#- -DUSING_X11_VULKAN=ON
- -DUSING_QT_UI=OFF
- -DBUILD_TESTING=OFF
- -DOpenGL_GL_PREFERENCE=GLVND
2022-10-31 11:31:15 +00:00
#build-options:
#- -DX86_64=ON
cleanup:
- /share/ppsspp/assets/lang/README.md
sources:
- type: git
2022-10-31 11:31:15 +00:00
url: &ppsspp-url https://github.com/hrydgard/ppsspp.git
tag: &ppsspp-tag v1.13.2
commit: &ppsspp-commit 9fe6338e3bf397f8a009a51a282c139dfa180eb6
x-checker-data:
type: git
tag-pattern: ^v([\d.]+)$
2022-10-31 11:31:15 +00:00
is-main-source: true
- name: ppsspp-localization
buildsystem: simple
build-commands:
- |
for LANG_FILE in assets/lang/*.ini; do
LANG_FILE_NAME="$(basename "$LANG_FILE")"
LANG_PREFIX="${LANG_FILE_NAME:0:2}"
LANG_DEST="$FLATPAK_DEST/share/locale/$LANG_PREFIX/ppsspp/$LANG_FILE_NAME";
ln -fsr "$LANG_DEST" "$FLATPAK_DEST/share/ppsspp/$LANG_FILE"
install -Dm644 "$LANG_FILE" "$LANG_DEST"
done
sources:
- type: shell
commands:
- cp -a $FLATPAK_DEST/share/ppsspp/assets .
# 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
2022-10-31 11:31:15 +00:00
# disable-submodules: true
# - 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
2022-07-06 17:53:51 +00:00
# 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-08-31 10:17:26 +00:00
url: https://github.com/nih-at/libzip/archive/v1.9.2.tar.gz
sha256: 7f28eaec7a02ca099ea9dad88fc8023f7f6ddfca54b780040ff7fdb39d9efb3c
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
2022-08-31 10:17:26 +00:00
buildsystem: meson
subdir: build/meson
config-opts:
- '-Dbin_programs=false'
- '-Dbin_contrib=false'
2022-07-06 17:53:51 +00:00
sources:
- type: archive
2022-08-31 12:05:30 +00:00
url: https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
2022-07-06 17:53:51 +00:00
sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0
x-checker-data:
type: anitya
project-id: 12083
2022-08-31 12:05:30 +00:00
url-template: https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz
2022-07-06 17:53:51 +00:00
- name: fmt
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
- -DFMT_TEST=OFF
sources:
- type: archive
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
2022-08-31 10:17:26 +00:00
versions:
<: 9.0.0
2022-08-31 12:05:30 +00:00
url-template: https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip
2022-07-06 17:53:51 +00:00
- name: glslang
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=Release
sources:
- type: archive
url: https://github.com/KhronosGroup/glslang/archive/11.12.0.tar.gz
sha256: 7795a97450fecd9779f3d821858fbc2d1a3bf1dd602617d95b685ccbcabc302f
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
url: https://github.com/catchorg/Catch2/archive/v2.13.10.tar.gz
sha256: d54a712b7b1d7708bc7a819a8e6e47b2fde9536f487b89ccbca295072a7d9943
2022-07-06 17:53:51 +00:00
x-checker-data:
type: anitya
stable-only: true
2022-08-31 10:17:26 +00:00
versions:
<: 3.0.0
2022-07-06 17:53:51 +00:00
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
2022-08-31 10:17:26 +00:00
url: https://github.com/nlohmann/json/archive/v3.11.2.tar.gz
sha256: d69f9deb6a75e2580465c6c4c5111b89c4dc2fa94e3a85fcd2ffcd9a143d9273
2022-07-06 17:53:51 +00:00
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: >-
2022-10-12 18:42:11 +00:00
https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2
sha256: 1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0
2022-07-06 17:53:51 +00:00
x-checker-data:
type: anitya
project-id: 6845
2022-10-12 18:42:11 +00:00
url-template: >-
https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_80_0.tar.bz2
2022-07-06 17:53:51 +00:00
- 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.]+)$
2022-07-06 17:53:51 +00:00
- 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=1218
- -DBUILD_TAG=mainline-1218
2022-07-06 17:53:51 +00:00
- -DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline
2022-08-31 13:16:30 +00:00
#- -DCMAKE_PREFIX_PATH=/run/build/yuzu/_flatpak_build/externals/qt5_5_15_2
2022-07-06 17:53:51 +00:00
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
2022-08-31 13:16:30 +00:00
- install -Dm644 ../dist/yuzu.svg /app/share/icons/hicolor/scalable/apps/yuzu.svg
2022-07-06 17:53:51 +00:00
sources:
2022-10-12 18:42:11 +00:00
#- disable-submodules: true # FLATHUB WORKAROUND
2022-07-06 17:53:51 +00:00
- type: git
url: https://github.com/yuzu-emu/yuzu-mainline.git
tag: mainline-0-1218
commit: 3fde85883904f43f2ae8aa0701250b4ea0d1c2a6
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
2022-08-31 13:16:30 +00:00
dest: dist/compatibility_list
2022-07-06 17:53:51 +00:00
2022-08-25 09:59:17 +00:00
# # Yuzu - END
2022-08-25 09:59:17 +00:00
# # Ryujinx - START
# # https://github.com/flathub/org.ryujinx.Ryujinx
2022-08-10 21:13:55 +00:00
2022-08-25 09:59:17 +00:00
# - name: Ryujinx
# buildsystem: simple
# build-options:
# append-path: /usr/lib/sdk/dotnet6/bin
# append-ld-library-path: /usr/lib/sdk/dotnet6/lib
# arch:
# x86_64:
# env:
# RUNTIME: linux-x64
# env:
# PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/sdk/dotnet6/lib/pkgconfig
# DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
# RYUJINX_VERSION: 1.1.209
# RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
# RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
# RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
# build-commands:
# - |
# export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
# sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" Ryujinx.Common/ReleaseInformations.cs
# sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" Ryujinx.Common/ReleaseInformations.cs
# mkdir -p /app/bin
# dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants=DISABLE_UPDATER --self-contained --source nuget-sources
# if [ $? -ne 0 ]; then
# exit 1;
# fi;
# cp -r --remove-destination /run/build/Ryujinx/Ryujinx/bin/Release/net6.0/$RUNTIME/publish/* /app/bin/
# mkdir -p /app/lib/ffmpeg
# ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
# wget https://raw.githubusercontent.com/flathub/org.ryujinx.Ryujinx/master/ryujinx-wrapper
# install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
# install -Dm644 distribution/linux/ryujinx-logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
# install -Dm644 distribution/linux/ryujinx-mime.xml /app/share/mime/packages/$FLATPAK_ID.mime.xml
# sources:
# - rd-submodules/ryujinx/nuget_sources.json
# - type: git
# url: https://github.com/Ryujinx/Ryujinx.git
# commit: 66e7fdb8710ff24bfb80c9c638ce2e6fa9563068
2022-07-06 17:53:51 +00:00
2022-08-25 09:59:17 +00:00
# # Ryujinx - END
2022-07-06 17:53:51 +00:00
# CITRA - START
2022-09-13 11:38:23 +00:00
# https://github.com/flathub/org.citra_emu.citra
- name: citra
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DCMAKE_BUILD_TYPE=Release
2022-09-13 11:38:23 +00:00
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
- -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:
2022-08-31 12:05:30 +00:00
- 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
2022-09-13 11:38:23 +00:00
tag: nightly-1785
commit: baecc18d8c5365af0dddb231bc8c0a9c03850bf6
disable-shallow-clone: true
x-checker-data:
type: git
tag-pattern: ^(nightly-\d+)$
# CITRA - END
# PCSX2 (Deprecated)- START
2022-07-06 17:53:51 +00:00
# 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
2022-08-10 20:50:52 +00:00
tag: v3.2.0
commit: 5b5ec3804a31a3765d60ff351bbdf79eddb1e1f9
2022-07-06 17:53:51 +00:00
x-checker-data:
type: git
tag-pattern: ^v([\d.]+)$
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
- 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
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
- 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.]+)$
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
- 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
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
- name: png++
disabled: true
buildsystem: simple
build-commands:
- make
- make prefix=/app install
sources:
- type: archive
2022-08-31 12:05:30 +00:00
url: https://download.savannah.nongnu.org/releases/pngpp/png++-0.2.10.tar.gz
2022-07-06 17:53:51 +00:00
sha256: 998af216ab16ebb88543fbaa2dbb9175855e944775b66f2996fc945c8444eee1
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
- 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
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
- 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
2022-08-26 12:00:46 +00:00
#- '-DWAYLAND_API=TRUE"' enable this if Steam Deck goes to Wayland
- '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE'
2022-07-06 17:53:51 +00:00
cleanup:
- /share/pixmaps
- /share/man
- /share/doc
sources:
- type: git
url: https://github.com/PCSX2/pcsx2.git
tag: v1.7.3229
commit: e3eae7fbe83aad3952e3ed6a8e56fc016b51a9c3
2022-08-10 21:01:44 +00:00
2022-07-06 17:53:51 +00:00
# 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
# - name: pcsx2-qt
# 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'
# #- '-DWAYLAND_API=TRUE"' enable this if Steam Deck goes to Wayland
# - '-DQT_BUILD=TRUE'
# - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE'
# cleanup:
# - /share/pixmaps
# - /share/man
# - /share/doc
# post-install:
# - ln -s ${FLATPAK_DEST}/share/PCSX2/resources ${FLATPAK_DEST}/bin/resources
# sources:
# - type: git
# url: https://github.com/PCSX2/pcsx2.git
# tag: v1.7.3229
# commit: e3eae7fbe83aad3952e3ed6a8e56fc016b51a9c3
# # same as above
# #disable-submodules: true
2022-08-10 21:01:44 +00:00
2022-09-01 11:55:12 +00:00
# Inspired by:
# https://github.com/flathub/com.zettlr.Zettlr/blob/master/com.zettlr.Zettlr.yaml
2022-09-13 11:42:30 +00:00
# https://pcsx2.net/downloads/
2022-09-01 18:20:06 +00:00
- name: pcsx2-qt-appimage
buildsystem: simple
build-commands:
- chmod +x pcsx2*.AppImage
- ./pcsx2*.AppImage --appimage-extract
- mkdir -p "${FLATPAK_DEST}/pcsx2-qt"
- cp -r squashfs-root/* "${FLATPAK_DEST}/pcsx2-qt"
2022-09-04 19:44:01 +00:00
- ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt"
2022-09-01 18:20:06 +00:00
sources:
- type: file
url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.3501/pcsx2-v1.7.3501-linux-AppImage-64bit-AVX2-Qt.AppImage
sha256: 104e8dae653aeb1fa7c75a4cc0fd07038715e75c1f7d40d111428ae83279356c
2022-09-01 11:55:12 +00:00
2022-07-06 17:53:51 +00:00
# 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.65.tar.xz
sha256: 2565a4d48354b576e6ad92e25b54ed66808296581c8abb80587051f9993d96d4
2022-07-06 17:53:51 +00:00
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
2022-09-13 11:49:30 +00:00
url: https://www.freedesktop.org/software/libevdev/libevdev-1.13.0.tar.xz
sha256: 9edf2006cc86a5055279647c38ec923d11a821ee4dc2c3033e8d20e8ee237cd9
2022-07-06 17:53:51 +00:00
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: 48c9c224cf9f82f0f9f2690b7cc6283d7448480c
x-checker-data:
type: json
url: https://dolphin-emu.org/update/latest/beta
commit-query: .hash
version-query: .shortrev
timestamp-query: .date
is-main-source: true
2022-07-06 17:53:51 +00:00
# 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
2022-07-06 17:53:51 +00:00
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.71
commit: 22db3304a454b2d289a9d5ea488fa3c3dec836f4
2022-07-06 17:53:51 +00:00
x-checker-data:
type: json
url: https://api.github.com/repos/mborgerson/xemu/releases/latest
tag-query: .tag_name
timestamp-query: .published_at
2022-09-13 11:44:51 +00:00
version-query: .tag_name
2022-07-06 17:53:51 +00:00
# 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
buildsystem: cmake-ninja
builddir: true
build-options:
2022-09-13 11:49:30 +00:00
append-ld-library-path: /usr/lib/sdk/llvm14/lib
append-path: /usr/lib/sdk/llvm14/bin
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
2022-07-06 17:53:51 +00:00
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=ON
2022-07-06 17:53:51 +00:00
- -DUSE_NATIVE_INSTRUCTIONS=OFF
- -DUSE_PRECOMPILED_HEADERS=OFF
- -DUSE_SYSTEM_CURL=ON
- -DUSE_SYSTEM_FFMPEG=ON
- -DUSE_SYSTEM_LIBPNG=ON
- -DUSE_SYSTEM_ZLIB=ON
- -DITTAPI_SOURCE_DIR=/run/build/rpcs3/ittapi
2022-07-06 17:53:51 +00:00
- -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: 8d5a9dc722de8e8e881adf8c7f16e76226a1dad8
- type: git
url: https://github.com/intel/ittapi.git
commit: 2428ed97aa977c66b30940081e7d3e9b1a3c7402
dest: ittapi/ittapi
disable-shallow-clone: true
2022-07-06 17:53:51 +00:00
# RPCS3 - END
2022-07-06 17:53:51 +00:00
# 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
# Duckstation - START
# https://github.com/flathub/org.duckstation.DuckStation
2022-07-06 17:53:51 +00:00
- name: duckstation
2022-07-06 17:53:51 +00:00
buildsystem: cmake-ninja
no-make-install: true
builddir: true
2022-07-06 17:53:51 +00:00
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DUSE_EGL=ON
- -DUSE_SDL2=ON
- -DUSE_WAYLAND=ON
- -DUSE_X11=ON
- -DUSE_DRMKMS=ON
- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
post-install:
- install -m755 bin/duckstation-qt /app/bin
- |-
for image in ../*px.png; do
icon=${image%px*}
px=${icon#*-}
install -Dm644 $image /app/share/icons/hicolor/${px}x${px}/apps/org.duckstation.DuckStation.png
done
- cp -r ../data/* bin/translations /app/bin
2022-07-06 17:53:51 +00:00
sources:
- type: git
url: https://github.com/stenzek/duckstation.git
branch: master
commit: 6f709468601183083b8581d4952aaba7baf77084
# Cloning dep/msvc/qt is only necessary for Windows
disable-submodules: true
- type: dir
path: icons
# Duckstation - END
2022-09-01 18:20:06 +00:00
# CEMU - START
2022-09-09 06:42:45 +00:00
# temporary here: https://github.com/Eonfge/flathub/blob/8bb2905b0fefdff820a2b65dac2a7cde916d3ce5/info.cemu.Cemu.yaml
2022-09-01 18:20:06 +00:00
2022-09-10 15:02:11 +00:00
# Needed for imgui
# - name: glad
# buildsystem: cmake-ninja
# config-opts:
# - -DCMAKE_BUILD_TYPE=RelWithDebInfo
# - -DBUILD_SHARED_LIBS=true
# - -DGLAD_REPRODUCIBLE=true
# - -DGLAD_INSTALL=true
# sources:
# - type: archive
# url: https://github.com/Dav1dde/glad/archive/refs/tags/v0.1.36.tar.gz
# sha256: 8470ed1b0e9fbe88e10c34770505c8a1dc8ccb78cadcf673331aaf5224f963d2
#
# # Needed for imgui
# - name: glfw
# buildsystem: cmake-ninja
# builddir: true
# config-opts:
# - -DBUILD_SHARED_LIBS=ON
# - -DGLFW_BUILD_EXAMPLES=OFF
# - -DGLFW_BUILD_TESTS=OFF
# - -DGLFW_BUILD_DOCS=OFF
# sources:
# - type: archive
# url: https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip
# sha256: 08a33a512f29d7dbf78eab39bd7858576adcc95228c9efe8e4bc5f0f3261efc7
# cleanup:
# - /include
# - /lib/pkgconfig
#
# - name: imgui
# buildsystem: cmake
# sources:
# - type: archive
# url: https://github.com/ocornut/imgui/archive/refs/tags/v1.88.zip
# sha256: 81087a74599e5890a07b636887cee73a7dc1a9eb9e1f19a4a0d82a76090bf4c2
# - type: file
# path: imguiCMakeLists.txt
# dest-filename: CMakeLists.txt
#
# - name: Cemu
# buildsystem: cmake-ninja
# builddir: true
# config-opts:
# - -DENABLE_VCPKG=false
# - -DCMAKE_BUILD_TYPE=release
# - -DCMAKE_C_COMPILER=/usr/bin/gcc
# - -DCMAKE_CXX_COMPILER=/usr/bin/g++
# - -G Ninja
# - -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja
# sources:
# - type: git
# url: https://github.com/cemu-project/Cemu
# commit: d8da8a54a6c08296a884b892d714cabcb7e4bdb5
# cleanup:
# - /app/include
# - /app/lib/*.a
# - /app/lib/*.la
# - /app/lib/pkgconfig
#
2022-09-01 18:20:06 +00:00
# CEMU - END
2022-07-06 17:53:51 +00:00
# External manifests end
- name: retrodeck
buildsystem: simple
build-commands:
2022-09-24 18:28:49 +00:00
# Initializing retrodeck config folder
- mkdir -p /var/config/retrodeck
# Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon
2022-07-06 17:53:51 +00:00
- 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/
2022-09-24 18:28:49 +00:00
# These must be put in home folder, managed by retrodeck.sh
2022-07-06 17:53:51 +00:00
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
2022-09-24 18:28:49 +00:00
# Logo, res
2022-07-06 17:53:51 +00:00
- rm -f /app/share/emulationstation/resources/graphics/splash.svg
2022-10-05 18:43:11 +00:00
- cp -f res/splash.svg /app/share/emulationstation/resources/graphics/splash.svg
- cp -f res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
2022-07-06 17:53:51 +00:00
2022-09-24 18:28:49 +00:00
# Tools
2022-07-06 17:53:51 +00:00
- mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
- cp tools/* ${FLATPAK_DEST}/retrodeck/tools/
- mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
2022-07-06 17:53:51 +00:00
- cp retrodeck.sh /app/bin/retrodeck.sh
- chmod +x /app/bin/retrodeck.sh
2022-07-18 08:04:17 +00:00
- cp global.sh /app/bin/global.sh
- chmod +x /app/bin/global.sh
2022-04-24 01:35:28 +00:00
2022-09-24 18:28:49 +00:00
# Desktop entry
2022-07-06 17:53:51 +00:00
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
2022-09-24 18:28:49 +00:00
# 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-06 17:53:51 +00:00
2022-09-24 18:28:49 +00:00
# Initializing default emulator configs
- cp -r emu-configs ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-07-06 17:53:51 +00:00
2022-09-24 18:28:49 +00:00
# Overlays
#- cp -r overlays ${FLATPAK_DEST}/retrodeck/overlays Disabled in 0.4.2b as it will be introduced in 0.5.0b
2022-07-06 17:53:51 +00:00
2022-09-24 18:28:49 +00:00
# Placing appdata
2022-07-06 17:53:51 +00:00
- 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-11-01 16:35:26 +00:00
branch: cooker