RetroDECK/net.retrodeck.retrodeck.yml

1079 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-22 13:31:39 +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/
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
# 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-22 20:55:01 +00:00
branch: 8b0a5c63367e46b95f124f5aba70abcaa3ff888a
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
2022-07-03 15:27:36 +00:00
commit: 9c5312084bb4b906da5b610fd50bab2afe697cac
2022-03-20 14:31:16 +00:00
# External manifests start
# 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
2022-06-15 13:18:00 +00:00
- 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/
2022-06-15 13:18:00 +00:00
- 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
2022-06-15 13:18:00 +00:00
modules:
- rd-submodules/retroarch/libpng/libpng-1.6.35.json
#nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json
2022-06-15 13:18:00 +00:00
- 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
2022-06-15 13:18:00 +00:00
- 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
2022-06-15 18:45:36 +00:00
- 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
2022-06-15 13:18:00 +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
branch: 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38
2022-06-15 13:18:00 +00:00
- 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
2022-06-15 13:18:00 +00:00
- name: libretro-core-info
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/libretro-core-info.git
commit: 06dac6318c067a6a40e2ea1e1260e74681ada844
2022-06-15 13:18:00 +00:00
- 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
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-06-20 19:29:03 +00:00
# WHEN UPADTING: remember to update rd-submodules/yuzu contents
2022-04-06 15:02:00 +00:00
- name: libzip
buildsystem: cmake-ninja
config-opts:
- '-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:
- '-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
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'
- '-DCATCH_INSTALL_EXTRAS=ON'
2022-04-06 15:02:00 +00:00
- '-DCATCH_BUILD_TESTING=OFF'
builddir: true
sources:
- type: archive
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'
- '-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
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: >-
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: >-
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'
- '-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
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
# 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
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
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
tag: v1.7.2889
commit: a6649b2d6b558806fbe7cbaf6296014e3c5c192e
2022-04-07 07:56:36 +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-06-20 19:29:03 +00:00
# WHEN UPADTING: remember to update rd-submodules/yuzu contents
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-22 16:08:16 +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
2022-06-22 16:08:16 +00:00
- type: script
2022-04-24 01:35:28 +00:00
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-22 16:08:16 +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
# 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
- 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
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
2022-06-17 14:30:30 +00:00
version-query: $tag | sub("^gh-release/"; "")
2022-04-24 01:35:28 +00:00
timestamp-query: .published_at
# 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
2022-06-30 08:27:14 +00:00
tag: nightly-1770
commit: 88a475970240e1dbade1720b02f9e5338647b1b8
2022-04-27 06:30:28 +00:00
disable-shallow-clone: true
x-checker-data:
type: git
tag-pattern: ^(nightly-\d+)$
# 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
- 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:
2022-06-17 14:30:30 +00:00
- '-DUSE_SYSTEM_FFMPEG=OFF' # turn this on?
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.]+)$"
# 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 01:35:28 +00:00
# Configuring emulators:
- mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs/
2022-04-24 01:35:28 +00:00
# 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-06-20 19:29:03 +00:00
# Overlays
2022-06-21 18:21:46 +00:00
- cp -r overlays ${FLATPAK_DEST}/retrodeck/overlays
2022-06-20 19:29:03 +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