RetroDECK/net.retrodeck.retrodeck.yml

1101 lines
35 KiB
YAML
Raw Normal View History

2022-04-24 01:35:28 +00:00
app-id: net.retrodeck.retrodeck
2022-03-20 14:31:16 +00:00
runtime: org.kde.Platform
runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
2022-04-24 01:35:28 +00:00
# Needed for rpcs3
sdk-extensions:
2022-06-14 12:45:46 +00:00
- org.freedesktop.Sdk.Extension.llvm13
2022-04-24 01:35:28 +00:00
# /Needed for rpcs3
2022-04-07 01:43:43 +00:00
# Needed for Yuzu
base: io.qt.qtwebengine.BaseApp
base-version: 5.15-21.08
# /Needed for Yuzu
command: retrodeck.sh
2022-03-20 14:31:16 +00:00
finish-args:
- --socket=x11
- --socket=wayland
- --socket=pulseaudio
- --share=ipc
- --share=network
- --device=all
2022-03-27 01:34:37 +00:00
- --filesystem=~/retrodeck:create
2022-04-14 03:39:03 +00:00
- --filesystem=/run/media
2022-04-23 00:42:57 +00:00
- --filesystem=/media
2022-03-20 14:31:16 +00:00
- --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
2022-03-27 01:34:37 +00:00
# Yuzu
2022-05-19 03:03:43 +00:00
# - --filesystem=home:ro # This may break Yuzu, let's see
2022-04-14 03:39:03 +00:00
# - --filesystem=/run/media:ro
2022-04-24 01:35:28 +00:00
# Dolphin
- --allow=bluetooth
2022-05-19 03:03:43 +00:00
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
2022-04-27 06:21:48 +00:00
# rpcs3
2022-04-27 06:32:45 +00:00
- --socket=fallback-x11
2022-03-20 14:31:16 +00:00
cleanup:
# ES-DE
- /include
- /share/ffmpeg
- /lib/cmake
2022-04-14 03:39:03 +00:00
#- /lib/debug
- /lib/pkgconfig
2022-04-06 15:02:00 +00:00
# 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
2022-03-20 14:31:16 +00:00
modules:
2022-05-19 03:03:43 +00:00
# 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:
2022-06-13 14:17:26 +00:00
# [ ] Update the VERSION variable
# [ ] Update the appdata.xml with the version number and notes
# [ ] change branch into main in retrodeck module (last one)
2022-05-19 03:03:43 +00:00
#
- name: version-initialization
buildsystem: simple
2022-05-19 03:03:43 +00:00
build-commands:
2022-05-25 13:27:51 +00:00
- |
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
2022-06-13 14:17:26 +00:00
VERSION="cooker"
2022-05-25 13:27:51 +00:00
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:
2022-04-14 03:39:03 +00:00
- cp -p /usr/share/automake-*/config.{sub,guess} .
- autoreconf -vfi
post-install:
2022-04-14 03:39:03 +00:00
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
cleanup: ["*"]
2022-06-07 07:07:54 +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
2022-06-11 21:30:41 +00:00
- name: glu
2022-06-07 07:07:54 +00:00
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
2022-06-11 21:30:41 +00:00
- 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
2022-06-15 13:55:37 +00:00
# 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
2022-03-25 15:31:26 +00:00
- name: freeimage
no-autogen: true
build-options:
cxxflags: -std=c++14
2022-03-25 15:31:26 +00:00
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
2022-04-14 03:39:03 +00:00
buildsystem: cmake-ninja
2022-03-25 15:31:26 +00:00
config-opts:
- -DBUILD_SHARED_LIBS=on .
2022-03-25 15:31:26 +00:00
sources:
- type: archive
url: https://github.com/zeux/pugixml/releases/download/v1.11.4/pugixml-1.11.4.tar.gz
sha256: 8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716
2022-03-25 15:31:26 +00:00
2022-06-08 10:32:44 +00:00
# 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
2022-03-25 15:31:26 +00:00
- name: emulationstation-de
2022-04-14 03:39:03 +00:00
buildsystem: cmake-ninja
2022-03-25 15:31:26 +00:00
cleanup:
- es-app
- es-core
sources:
- type: git
2022-05-15 14:41:20 +00:00
url: https://gitlab.com/es-de/emulationstation-de
2022-06-08 10:32:44 +00:00
branch: 5a76fef25ffc659f098ee65215281c51a63c3198
2022-05-02 13:30:22 +00:00
- type: shell
commands:
- sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp
2022-05-25 07:21:55 +00:00
- 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
2022-03-25 15:31:26 +00:00
# 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
2022-03-20 14:31:16 +00:00
# External manifests start
2022-06-15 13:55:37 +00:00
# RetroArch - START
# https://github.com/flathub/org.libretro.RetroArch
2022-06-15 13:18:00 +00:00
- name: retroarch
config-opts:
- '--enable-dbus'
make-args:
- GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc
2022-06-15 18:37:11 +00:00
sources:
2022-06-15 13:18:00 +00:00
- type: git
url: https://github.com/libretro/RetroArch.git
branch: 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38
- type: file
2022-06-15 18:45:36 +00:00
path: rd-submodules/retroarch/retroarch.cfg
2022-06-15 13:18:00 +00:00
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:
2022-06-15 18:45:36 +00:00
- rd-submodules/retroarch/libpng/libpng-1.6.35.json
2022-06-15 13:18:00 +00:00
#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
2022-06-15 18:45:36 +00:00
- 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
2022-06-15 13:18:00 +00:00
# certificate issue, check libglu module for more info
#- shared-modules/glu/glu-9.json
2022-06-15 18:45:36 +00:00
- rd-submodules/retroarch/libdecor/libdecor-0.1.0.json
2022-06-15 13:18:00 +00:00
- 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
2022-06-15 13:43:10 +00:00
# - 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
2022-06-15 13:43:10 +00:00
# url: https://github.com/libretro/common-overlays.git
# commit: db9744f4e58a740f0f10b04b62af347cd6f01928
# RetroArch - END
2022-03-27 01:34:37 +00:00
# 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
2022-03-27 01:34:37 +00:00
2022-06-15 13:18:00 +00:00
# Yuzu - START
# https://github.com/flathub/org.yuzu_emu.yuzu
2022-04-06 15:02:00 +00:00
- name: libzip
buildsystem: cmake-ninja
config-opts:
2022-06-08 13:06:11 +00:00
- '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
2022-04-06 15:02:00 +00:00
- '-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:
2022-06-08 13:06:11 +00:00
- '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
2022-04-06 15:02:00 +00:00
- '-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
2022-06-08 13:06:11 +00:00
url: https://github.com/KhronosGroup/glslang/archive/11.9.0.tar.gz
sha256: d5744adba19eef9ad3d73f524226b39fec559d94cb582cd442e3c5de930004b2
2022-04-06 15:02:00 +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'
2022-06-08 13:06:11 +00:00
- '-DCATCH_INSTALL_EXTRAS=ON'
2022-04-06 15:02:00 +00:00
- '-DCATCH_BUILD_TESTING=OFF'
builddir: true
sources:
- type: archive
2022-06-08 13:06:11 +00:00
url: https://github.com/catchorg/Catch2/archive/v2.13.9.tar.gz
sha256: 06dbc7620e3b96c2b69d57bf337028bf245a211b3cddb843835bfe258f427a52
2022-04-06 15:02:00 +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'
2022-06-08 13:06:11 +00:00
- '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
2022-04-06 15:02:00 +00:00
- '-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
2022-06-08 13:06:11 +00:00
project-id: 11152
2022-04-06 15:02:00 +00:00
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-06-08 13:06:11 +00:00
https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2
sha256: 475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39
2022-04-06 15:02:00 +00:00
x-checker-data:
type: anitya
project-id: 6845
url-template: >-
2022-06-08 13:06:11 +00:00
https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_79_0.tar.bz2
2022-04-06 15:02:00 +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.]+)$
- 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'
2022-06-08 13:06:11 +00:00
- '-DDISPLAY_VERSION=1039'
- '-DBUILD_TAG=mainline-1039'
2022-04-06 15:02:00 +00:00
- '-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
2022-04-07 01:43:43 +00:00
post-install:
- install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher
- >-
install -Dm644 ../dist/yuzu.svg
/app/share/icons/hicolor/scalable/apps/yuzu.svg
2022-04-06 15:02:00 +00:00
sources:
- type: git
url: https://github.com/yuzu-emu/yuzu-mainline.git
2022-06-08 13:06:11 +00:00
tag: mainline-0-1039
commit: 983afc5328725109a1cf13c61103b8a553c005d0
2022-04-06 15:02:00 +00:00
disable-shallow-clone: true
x-checker-data:
type: git
tag-pattern: ^(mainline-0-\d+)$
2022-04-07 01:43:43 +00:00
- type: file
path: rd-submodules/yuzu/yuzu-launcher.sh
- type: file
path: rd-submodules/yuzu/compatibility_list.json
2022-04-06 15:02:00 +00:00
# Yuzu - END
2022-06-15 13:55:37 +00:00
# PCSX2 - START
# https://github.com/flathub/net.pcsx2.PCSX2
2022-04-07 07:56:36 +00:00
- 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-06-08 13:08:46 +00:00
tag: v3.1.6
commit: 19907924842a9152b8ee5f03f117aed65193b964
2022-04-07 07:56:36 +00:00
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
2022-06-08 13:08:46 +00:00
tag: libaio-0.3.113
commit: 1b18bfafc6a2f7b9fa2c6be77a95afed8b7be448
2022-04-07 07:56:36 +00:00
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
2022-06-08 13:08:46 +00:00
tag: v1.7.2889
commit: a6649b2d6b558806fbe7cbaf6296014e3c5c192e
2022-04-07 07:56:36 +00:00
2022-06-15 13:18:00 +00:00
# PCSX2 - END
2022-04-07 07:56:36 +00:00
2022-04-24 01:35:28 +00:00
# Dolphin - START
# https://github.com/flathub/org.DolphinEmu.dolphin-emu
2022-04-24 01:35:28 +00:00
# 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
2022-06-08 13:11:52 +00:00
commit: 8335ec70e5fe253eb21509408ca6b5736ed57dfc
2022-04-24 01:35:28 +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
2022-06-08 13:11:52 +00:00
# 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-04-24 01:35:28 +00:00
dest-filename: dolphin-emu-wrapper
2022-04-24 01:35:28 +00:00
# Dolphin - END
# XEMU - START
2022-06-08 13:15:24 +00:00
# https://github.com/flathub/app.xemu.xemu
2022-04-24 01:35:28 +00:00
2022-06-11 21:30:41 +00:00
# certificate issue, check libglu module for more info
2022-06-07 07:07:54 +00:00
# - 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
2022-04-24 01:35:28 +00:00
2022-06-08 13:15:24 +00:00
- 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
2022-04-24 01:35:28 +00:00
- 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
2022-06-08 13:15:24 +00:00
tag: v0.7.29
commit: 69dcbe9b3081ee51d1468b1b7777b8b930bfba6c
2022-04-24 01:35:28 +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
is-main-source: true
# XEMU - END
2022-04-27 06:46:14 +00:00
# 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
2022-04-27 06:30:28 +00:00
# CITRA - START
# https://github.com/flathub/org.citra_emu.citra
- 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
2022-04-27 06:30:28 +00:00
- '-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-1767
commit: 6f6a9357c26eccf09bf0c993f159d69bbe472f49
2022-04-27 06:30:28 +00:00
disable-shallow-clone: true
x-checker-data:
type: git
tag-pattern: ^(nightly-\d+)$
is-main-source: true
# CITRA - END
2022-04-28 04:22:55 +00:00
2022-04-27 06:21:48 +00:00
# RPCS3 - START
# https://github.com/flathub/net.rpcs3.RPCS3
2022-06-07 07:07:54 +00:00
# glu issue, check libglu module for more info
#- shared-modules/glu/glu-9.json
2022-04-27 13:38:07 +00:00
- shared-modules/glew/glew.json
# llvm13 is already included in the flathub enviornment, letś see if it's working correctly as this module fails
- 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
2022-04-27 06:21:48 +00:00
- 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
2022-04-27 06:21:48 +00:00
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
2022-04-27 06:21:48 +00:00
2022-04-28 04:24:18 +00:00
# RPCS3 - END
2022-04-27 06:40:20 +00:00
# PRIMEHACK - START
2022-04-27 06:41:03 +00:00
# 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
2022-04-27 06:40:20 +00:00
# PRIMEHACK - END
2022-04-27 06:46:14 +00:00
2022-05-02 12:59:03 +00:00
# PPSSPP - START
# https://github.com/flathub/org.ppsspp.PPSSPP
- name: ppsspp
buildsystem: cmake-ninja
config-opts:
- '-DUSE_SYSTEM_FFMPEG=OFF'
2022-05-02 12:59:03 +00:00
- '-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
x-checker-data:
type: git
tag-pattern: "^v([\\d.]+)$"
is-main-source: true
# PPSSPP - END
# External manifests end
2022-03-20 14:31:16 +00:00
- name: retrodeck
buildsystem: simple
build-commands:
2022-03-27 01:34:37 +00:00
2022-05-19 03:08:47 +00:00
# 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
2022-03-31 11:50:46 +00:00
# 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
2022-03-29 02:51:22 +00:00
# Tools
- mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
- cp tools/* ${FLATPAK_DEST}/retrodeck/tools/
- mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
2022-03-27 13:30:22 +00:00
- cp retrodeck.sh /app/bin/retrodeck.sh
- chmod +x /app/bin/retrodeck.sh
2022-04-24 01:35:28 +00:00
2022-03-31 11:50:46 +00:00
# Desktop entry
2022-04-24 01:35:28 +00:00
- 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-04-24 13:29:53 +00:00
2022-04-24 01:35:28 +00:00
# Configuring emulators:
- mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs/
# RetroArch
- cp emu-configs/retroarch* ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-24 01:35:28 +00:00
# Dolphin
- cp emu-configs/Dolphin/* ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-24 01:35:28 +00:00
# Yuzu
- cp emu-configs/yuzu-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-24 01:35:28 +00:00
# Pcsx2
- cp emu-configs/PCSX2_ui.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
- cp emu-configs/GS.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
- cp emu-configs/PCSX2_vm.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-29 12:17:30 +00:00
# MelonDS
- cp emu-configs/melonDS.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-29 13:50:21 +00:00
# CITRA
- cp emu-configs/citra-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-29 14:07:01 +00:00
# RPCS3
- cp emu-configs/config.yml ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-03-31 11:50:46 +00:00
2022-05-01 10:16:19 +00:00
# Placing appdata
- mkdir -p ${FLATPAK_DEST}/share/appdata
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
2022-03-31 11:50:46 +00:00
2022-03-20 14:31:16 +00:00
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
branch: cooker
# - type: dir
# path: es-configs
# - type: file
# path: retrodeck.sh
# - type: dir
# path: emu-configs
# - type: dir
# path: emu-configs/Dolphin
# - type: dir
# path: res
# - type: dir
# path: res/steam
# - type: dir
# path: tools
# - type: file
# path: net.retrodeck.retrodeck.desktop
# - type: file
# path: net.retrodeck.retrodeck.appdata.xml