mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-24 15:05:39 +00:00
1049 lines
34 KiB
YAML
1049 lines
34 KiB
YAML
app-id: net.retrodeck.retrodeck
|
|
runtime: org.kde.Platform
|
|
runtime-version: '5.15-21.08'
|
|
sdk: org.kde.Sdk
|
|
# Needed for rpcs3
|
|
sdk-extensions:
|
|
- org.freedesktop.Sdk.Extension.llvm13
|
|
# /Needed for rpcs3
|
|
# Needed for Yuzu
|
|
base: io.qt.qtwebengine.BaseApp
|
|
base-version: 5.15-21.08
|
|
# /Needed for Yuzu
|
|
command: retrodeck.sh
|
|
|
|
finish-args:
|
|
- --socket=x11
|
|
- --socket=wayland
|
|
- --socket=pulseaudio
|
|
- --share=ipc
|
|
- --share=network
|
|
- --device=all
|
|
- --filesystem=~/retrodeck:create
|
|
- --filesystem=/run/media
|
|
- --filesystem=/media
|
|
- --allow=multiarch
|
|
- --talk-name=org.freedesktop.ScreenSaver
|
|
- --talk-name=org.freedesktop.PowerManagement.Inhibit
|
|
- --talk-name=org.freedesktop.login1
|
|
- --filesystem=xdg-run/app/com.discordapp.Discord:create
|
|
# Yuzu
|
|
# - --filesystem=home:ro # This may break Yuzu, let's see
|
|
# - --filesystem=/run/media:ro
|
|
# Dolphin
|
|
- --allow=bluetooth
|
|
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
|
|
# rpcs3
|
|
- --socket=fallback-x11
|
|
|
|
cleanup:
|
|
# ES-DE
|
|
- /include
|
|
- /share/ffmpeg
|
|
- /lib/cmake
|
|
#- /lib/debug
|
|
- /lib/pkgconfig
|
|
# Yuzu
|
|
- /include
|
|
- /bin/glslangValidator
|
|
- /bin/zip*
|
|
- /bin/zstd*
|
|
- /lib/pkg-config
|
|
- /share/doc
|
|
- /share/man
|
|
- /src
|
|
- '*.a'
|
|
- '*.la'
|
|
cleanup-commands:
|
|
# Yuzu
|
|
- /app/cleanup-BaseApp.sh
|
|
|
|
modules:
|
|
|
|
# This module is used to define the RetroDECK version
|
|
# If the version is set as cooker it will automatically generate the version tag based on the date
|
|
# else it will just put what is written, "v" is not needed
|
|
# The version number is stored in /var/conf/retrodeck/version
|
|
#
|
|
# UPDATE STEPS FOR MAIN:
|
|
# [ ] Update the VERSION variable
|
|
# [ ] Update the appdata.xml with the version number and notes
|
|
#
|
|
- name: version-initialization
|
|
buildsystem: simple
|
|
build-commands:
|
|
- mkdir -p ${FLATPAK_DEST}/retrodeck/
|
|
- VERSION="cooker"
|
|
- if [ $VERSION == "cooker" ]; then VERSION=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')-$(date +'%Y%m%d_%H%M'); fi
|
|
- $VERSION >> ${FLATPAK_DEST}/retrodeck/version
|
|
|
|
- name: xmlstarlet
|
|
config-opts:
|
|
- --disable-static-libs
|
|
- --with-libxml-libs-prefix=/usr/lib
|
|
- --with-libxml-include-prefix=/usr/include/libxml2
|
|
sources:
|
|
- type: archive
|
|
url: https://downloads.sourceforge.net/xmlstar/xmlstarlet-1.6.1.tar.gz
|
|
sha256: 15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca
|
|
- type: shell
|
|
commands:
|
|
- cp -p /usr/share/automake-*/config.{sub,guess} .
|
|
- autoreconf -vfi
|
|
post-install:
|
|
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
|
|
cleanup: ["*"]
|
|
|
|
- name: rclone
|
|
buildsystem: simple
|
|
build-commands:
|
|
- cp rclone /app/bin/rclone
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/rclone/rclone/releases/download/v1.58.1/rclone-v1.58.1-linux-amd64.zip
|
|
sha256: 135a4a0965cb58eafb07941f2013a82282c44c28fea9595587778e969d9ed035
|
|
|
|
# ES-DE
|
|
|
|
- name: ffmpeg
|
|
config-opts:
|
|
- --disable-static
|
|
- --disable-programs
|
|
- --disable-doc
|
|
- --enable-gpl
|
|
- --enable-shared
|
|
- --enable-libvorbis
|
|
- --enable-libopus
|
|
- --enable-libvpx
|
|
- --enable-postproc
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/FFmpeg/FFmpeg.git
|
|
tag: n5.0
|
|
|
|
- name: freeimage
|
|
no-autogen: true
|
|
build-options:
|
|
cxxflags: -std=c++14
|
|
make-args:
|
|
- DESTDIR=/app
|
|
sources:
|
|
- type: archive
|
|
url: http://downloads.sourceforge.net/freeimage/FreeImage3180.zip
|
|
sha256: f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd
|
|
- type: shell
|
|
commands:
|
|
- sed -i 's|-o root -g root ||' ./Makefile.gnu
|
|
- sed -i 's|/usr|/app|' ./Makefile.gnu
|
|
|
|
- name: pugixml
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- -DBUILD_SHARED_LIBS=on .
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/zeux/pugixml/releases/download/v1.11.4/pugixml-1.11.4.tar.gz
|
|
sha256: 8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716
|
|
|
|
- name: emulationstation-de
|
|
buildsystem: cmake-ninja
|
|
cleanup:
|
|
- es-app
|
|
- es-core
|
|
sources:
|
|
- type: git
|
|
url: https://gitlab.com/es-de/emulationstation-de
|
|
branch: d89cedd25f1bbb9a38c1f66bca18b74d5332cad1
|
|
- type: shell
|
|
commands:
|
|
- sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp
|
|
- sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK v$(cat ${FLATPAK_DEST}/retrodeck/version), ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g' es-app/src/guis/GuiMenu.cpp
|
|
|
|
# ES-DE - END
|
|
|
|
- name: art-book-next
|
|
buildsystem: simple
|
|
build-commands:
|
|
- mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-de/
|
|
- mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-de/
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/anthonycaccese/art-book-next-de.git
|
|
commit: c3563ab31c628774904ca51776c114c537ac0c33
|
|
|
|
|
|
# External manifests start
|
|
|
|
# RetroArch - https://github.com/flathub/org.libretro.RetroArch
|
|
|
|
- name: retroarch
|
|
config-opts:
|
|
- '--enable-dbus'
|
|
make-args:
|
|
- GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/RetroArch.git
|
|
branch: de4e56ecf28a09057734f8624af6d62f3088734f
|
|
- 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/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/libusb/libusb.json
|
|
- shared-modules/gudev/gudev.json
|
|
- rd-submodules/retroarch/libbz2/libbz2-1.0.8.json
|
|
- rd-submodules/retroarch/libaio/libaio-0.3.112.json
|
|
- shared-modules/glu/glu-9.json
|
|
- rd-submodules/retroarch/libdecor/libdecor-0.1.0.json
|
|
- name: retroarch-filers-video
|
|
subdir: gfx/video_filters
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/RetroArch.git
|
|
branch: de4e56ecf28a09057734f8624af6d62f3088734f
|
|
- name: retroarch-filers-audio
|
|
subdir: libretro-common/audio/dsp_filters
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/RetroArch.git
|
|
branch: de4e56ecf28a09057734f8624af6d62f3088734f
|
|
- name: retroarch-assets
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/retroarch-assets.git
|
|
commit: f45dd1351e6bfb9f01e12bee8d358ad22a2bb8f9
|
|
- name: libretro-database
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/libretro-database.git
|
|
commit: 1754130f72d8c00a512797bf85442576258279e8
|
|
- name: libretro-core-info
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/libretro-core-info.git
|
|
commit: 1b2472eca14a5a187ff298ace1b614fd3d47bc7c
|
|
- name: retroarch-joypad-autoconfig
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/retroarch-joypad-autoconfig.git
|
|
commit: 0eb3ad2666e6bdc2de2cde4c5d4af29b8c7f2c67
|
|
- name: common-shaders
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/common-shaders.git
|
|
commit: 55e401834b732e62c34411321c4ffd82524345d4
|
|
- name: slang-shaders
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/slang-shaders.git
|
|
commit: 77558d5f2ac807b27201fb888cbf2caee8e289fa
|
|
- name: glsl-shaders
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/glsl-shaders.git
|
|
commit: 20801b38aa2c89a2beb9f57ffbbbcea7256e2523
|
|
- name: common-overlays
|
|
make-install-args:
|
|
- PREFIX=${FLATPAK_DEST}
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/libretro/common-overlays.git
|
|
commit: db9744f4e58a740f0f10b04b62af347cd6f01928
|
|
|
|
# RetroArch - END
|
|
|
|
# Not part of the offical RetroArch manifest
|
|
- name: retroarch-cores
|
|
buildsystem: simple
|
|
build-commands:
|
|
- mkdir -p /app/share/libretro/cores/
|
|
- mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/
|
|
sources:
|
|
- type: archive
|
|
url: https://buildbot.libretro.com/stable/1.10.2/linux/x86_64/RetroArch_cores.7z
|
|
sha256: 0c59f99534a1ae3a2d34b1747c40398325e53db69acfab35b99c8fa8d76430e5
|
|
|
|
# Yuzu - https://github.com/flathub/org.yuzu_emu.yuzu
|
|
|
|
- name: libzip
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz
|
|
sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 10649
|
|
url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz
|
|
- name: zstd
|
|
buildsystem: simple
|
|
build-commands:
|
|
- make -j $FLATPAK_BUILDER_N_JOBS
|
|
- make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install
|
|
sources:
|
|
- type: archive
|
|
url: >-
|
|
https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
|
|
sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 12083
|
|
url-template: >-
|
|
https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz
|
|
- name: fmt
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DFMT_TEST=OFF'
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip
|
|
sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 11526
|
|
url-template: >-
|
|
https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip
|
|
- name: glslang
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DCMAKE_BUILD_TYPE=Release'
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/KhronosGroup/glslang/archive/11.8.0.tar.gz
|
|
sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0
|
|
x-checker-data:
|
|
type: anitya
|
|
stable-only: true
|
|
project-id: 205796
|
|
url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
|
|
- name: catch2
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DCMAKE_BUILD_TYPE=Release'
|
|
- '-DCATCH_BUILD_TESTING=OFF'
|
|
builddir: true
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz
|
|
sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a
|
|
x-checker-data:
|
|
type: anitya
|
|
stable-only: true
|
|
project-id: 7680
|
|
url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz
|
|
- name: nlohmann-json
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DCMAKE_BUILD_TYPE=Release'
|
|
- '-DJSON_BuildTests=OFF'
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz
|
|
sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 141453
|
|
url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz
|
|
- name: boost
|
|
buildsystem: simple
|
|
build-commands:
|
|
- ./bootstrap.sh --with-libraries=context,container,system,headers
|
|
- ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app
|
|
sources:
|
|
- type: archive
|
|
url: >-
|
|
https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
|
|
sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 6845
|
|
url-template: >-
|
|
https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_0.tar.bz2
|
|
- name: nv-codec-headers
|
|
make-install-args:
|
|
- PREFIX=/app
|
|
no-autogen: true
|
|
cleanup:
|
|
- '*'
|
|
sources:
|
|
- type: git
|
|
url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
|
|
tag: n11.1.5.1
|
|
commit: 84483da70d903239d4536763fde8c7e6c4e80784
|
|
x-checker-data:
|
|
type: git
|
|
tag-pattern: ^n([\d.]+)$
|
|
- name: yuzu
|
|
buildsystem: cmake-ninja
|
|
builddir: true
|
|
config-opts:
|
|
- '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
|
|
- '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
|
|
- '-DENABLE_QT_TRANSLATION=ON'
|
|
- '-DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON'
|
|
- '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
|
|
- '-DYUZU_USE_QT_WEB_ENGINE=ON'
|
|
- '-DYUZU_USE_BUNDLED_FFMPEG=ON'
|
|
- '-DDISPLAY_VERSION=969'
|
|
- '-DBUILD_TAG=mainline-969'
|
|
- '-DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline'
|
|
build-options:
|
|
env:
|
|
TITLEBARFORMATIDLE: yuzu {}
|
|
TITLEBARFORMATRUNNING: yuzu {} | {}
|
|
LDFLAGS: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed'
|
|
cleanup:
|
|
- /share/man
|
|
- /share/pixmaps
|
|
post-install:
|
|
- install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher
|
|
- desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop
|
|
- >-
|
|
desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key
|
|
Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop
|
|
- >-
|
|
install -Dm644 ../dist/yuzu.svg
|
|
/app/share/icons/hicolor/scalable/apps/yuzu.svg
|
|
- >-
|
|
mv /app/share/mime/packages/yuzu.xml
|
|
/app/share/mime/packages/org.yuzu_emu.yuzu.xml
|
|
- >-
|
|
sed 's/yuzu/org.yuzu_emu.yuzu/g' -i
|
|
/app/share/mime/packages/org.yuzu_emu.yuzu.xml
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/yuzu-emu/yuzu-mainline.git
|
|
tag: mainline-0-969
|
|
commit: d179e12137cd8ff88b0eade7d13de801661f869b
|
|
disable-shallow-clone: true
|
|
x-checker-data:
|
|
type: git
|
|
tag-pattern: ^(mainline-0-\d+)$
|
|
- type: file
|
|
path: rd-submodules/yuzu/yuzu-launcher.sh
|
|
- type: file
|
|
path: rd-submodules/yuzu/compatibility_list.json
|
|
|
|
# Yuzu - END
|
|
|
|
# pcsx2 - https://github.com/flathub/net.pcsx2.PCSX2
|
|
|
|
- name: wxWidgets
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DCMAKE_BUILD_TYPE=Release'
|
|
cleanup:
|
|
- /bin
|
|
- /include
|
|
- /lib/wx/include
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/wxWidgets/wxWidgets.git
|
|
tag: v3.1.5
|
|
commit: 9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1
|
|
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.112
|
|
commit: d025927efa75a0d1b46ca3a5ef331caa2f46ee0e
|
|
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
|
|
post-install:
|
|
- >-
|
|
desktop-file-edit --set-key=Exec --set-value=pcsx2
|
|
/app/share/applications/PCSX2.desktop
|
|
- >-
|
|
install -Dm644 ../AppIcon128.png
|
|
/app/share/icons/hicolor/128x128/apps/PCSX2.png
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/PCSX2/pcsx2.git
|
|
tag: v1.7.2554
|
|
commit: 0d1675fbaa0d40874df98eed6270efc55620271b
|
|
- type: file
|
|
path: rd-submodules/pcsx2/AppIcon128.png
|
|
|
|
# pcsx2 - END
|
|
|
|
# Dolphin - START
|
|
# https://github.com/flathub/org.DolphinEmu.dolphin-emu
|
|
|
|
# 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
|
|
- install -Dm644 appdata.xml /app/share/appdata/dolphin-emu.appdata.xml
|
|
- sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
|
|
- desktop-file-edit --set-key=Exec --set-value='/app/bin/dolphin-emu-wrapper'
|
|
/app/share/applications/dolphin-emu.desktop
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/dolphin-emu/dolphin.git
|
|
commit: 8ecfa537a242de74d2e372e30d9d79b14584b2fb
|
|
# 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: file
|
|
path: rd-submodules/dolphin/appdata.xml
|
|
- 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
|
|
|
|
# Dolphin - END
|
|
|
|
# XEMU - START
|
|
|
|
- name: libglu
|
|
buildsystem: meson
|
|
cleanup:
|
|
- /include
|
|
- /lib/debug
|
|
- /lib/pkgconfig
|
|
- /lib/*.a
|
|
sources:
|
|
- type: archive
|
|
url: https://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: https://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz
|
|
|
|
- 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
|
|
- desktop-file-install ../ui/xemu.desktop --dir /app/share/applications
|
|
- sed -i 's/^Icon=xemu/Icon=app.xemu.xemu/' /app/share/applications/xemu.desktop
|
|
- 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: gh-release/0.6.2-90-g6f507c80af
|
|
commit: 6f507c80af546e0f5d316622d20f78820423ce6e
|
|
x-checker-data:
|
|
type: json
|
|
url: https://api.github.com/repos/mborgerson/xemu/releases/latest
|
|
tag-query: .tag_name
|
|
version-query: $tag | sub("^gh-release/"; "")
|
|
timestamp-query: .published_at
|
|
is-main-source: true
|
|
|
|
# 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
|
|
|
|
# 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
|
|
- '-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-1762
|
|
commit: 1382035d4de5ada310c7f4fd00f1836b16ab74fb
|
|
disable-shallow-clone: true
|
|
x-checker-data:
|
|
type: git
|
|
tag-pattern: ^(nightly-\d+)$
|
|
is-main-source: true
|
|
|
|
# CITRA - END
|
|
|
|
# RPCS3 - START
|
|
# https://github.com/flathub/net.rpcs3.RPCS3
|
|
|
|
- shared-modules/glu/glu-9.json
|
|
- shared-modules/glew/glew.json
|
|
|
|
- name: rpcs3-llvm
|
|
buildsystem: cmake-ninja
|
|
builddir: true
|
|
build-options:
|
|
cflags: &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
|
|
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
|
|
-fcf-protection -fno-omit-frame-pointer
|
|
cflags-override: true
|
|
cxxflags: -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
|
|
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
|
|
-fcf-protection -fno-omit-frame-pointer -msse -msse2 -mcx16
|
|
cxxflags-override: true
|
|
env:
|
|
AR: llvm-ar
|
|
CC: clang
|
|
CXX: clang++
|
|
RANLIB: llvm-ranlib
|
|
ldflags: -fuse-ld=lld
|
|
prepend-ld-library-path: /usr/lib/sdk/llvm13/lib
|
|
prepend-path: /usr/lib/sdk/llvm13/bin
|
|
config-opts:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
- -DBUILD_SHARED_LIBS=OFF
|
|
- -DLLVM_CCACHE_BUILD=ON
|
|
- -DLLVM_TARGETS_TO_BUILD='X86'
|
|
- -DLLVM_BUILD_RUNTIME=OFF
|
|
- -DLLVM_BUILD_TOOLS=OFF
|
|
- -DLLVM_INCLUDE_DOCS=OFF
|
|
- -DLLVM_INCLUDE_EXAMPLES=OFF
|
|
- -DLLVM_INCLUDE_TESTS=OFF
|
|
- -DLLVM_INCLUDE_TOOLS=OFF
|
|
- -DLLVM_INCLUDE_UTILS=OFF
|
|
- -DLLVM_USE_INTEL_JITEVENTS=ON
|
|
- -DLLVM_USE_PERF=ON
|
|
- -DLLVM_ENABLE_Z3_SOLVER=OFF
|
|
- -DCMAKE_CXX_STANDARD=17
|
|
- -DITTAPI_SOURCE_DIR=/run/build/rpcs3-llvm/ittapi
|
|
- -Wno-dev
|
|
cleanup:
|
|
- '*'
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/RPCS3/llvm-mirror.git
|
|
commit: 509d31ad89676522f7121b3bb8688f7d29b7ee60
|
|
- type: git
|
|
url: https://github.com/intel/ittapi.git
|
|
dest: ittapi/ittapi
|
|
disable-shallow-clone: true
|
|
|
|
- name: rpcs3
|
|
buildsystem: cmake-ninja
|
|
builddir: true
|
|
build-options:
|
|
append-ld-library-path: /usr/lib/sdk/llvm13/lib
|
|
append-path: /usr/lib/sdk/llvm13/bin
|
|
cflags: *optflags
|
|
cflags-override: true
|
|
cxxflags: *optflags
|
|
cxxflags-override: true
|
|
env:
|
|
AR: llvm-ar
|
|
CC: clang
|
|
CXX: clang++
|
|
RANLIB: llvm-ranlib
|
|
ldflags: -fuse-ld=lld
|
|
config-opts:
|
|
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
- -DBUILD_LLVM_SUBMODULE=OFF
|
|
- -DUSE_NATIVE_INSTRUCTIONS=OFF
|
|
- -DUSE_PRECOMPILED_HEADERS=OFF
|
|
- -DUSE_SYSTEM_CURL=ON
|
|
- -DUSE_SYSTEM_FFMPEG=ON
|
|
- -DUSE_SYSTEM_LIBPNG=ON
|
|
- -DUSE_SYSTEM_ZLIB=ON
|
|
- -Wno-dev
|
|
post-install:
|
|
- |
|
|
set -eux;
|
|
sed -i 's|<id>RPCS3</id>|<id>net.rpcs3.RPCS3</id>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml;
|
|
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)";
|
|
sed -i 's|</component>|<content_rating type="oars-1.1"/><releases><release date="'$(git show -s --format=%cs)'" version="'"${COMM_TAG}"'-'"${COMM_COUNT}"'-'"${COMM_HASH}"'"/></releases></component>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml;
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/RPCS3/rpcs3.git
|
|
commit: e9570d1a0045926f63ec8ea9af68f81743d4f365
|
|
|
|
# RPCS3 - END
|
|
|
|
# PRIMEHACK - START
|
|
# https://github.com/flathub/io.github.shiiion.primehack
|
|
# Disabled because it's overwriting Dolphin
|
|
# - name: primehack
|
|
# buildsystem: cmake-ninja
|
|
# config-opts:
|
|
# - -DCMAKE_BUILD_TYPE=Release
|
|
# - -DENABLE_ALSA=OFF
|
|
# - -DENABLE_SDL=ON
|
|
# - -DENABLE_EVDEV=ON
|
|
# - -DDISTRIBUTOR=Flathub
|
|
# cleanup:
|
|
# - /share/man
|
|
# post-install:
|
|
# - install -D dolphin-emu-wrapper /app/bin/dolphin-emu-wrapper
|
|
# - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
|
|
# sources:
|
|
# - type: git
|
|
# url: https://github.com/shiiion/dolphin.git
|
|
# commit: 9ca0eb888bd6f8ed13a4efb92d808fbf0705ffa4
|
|
# # detects whether dolphin is running in a flatpak sandbox
|
|
# # and makes it use xdg directories if it is.
|
|
# # prevents dolphin from attempting to write conf files
|
|
# # in non-writable paths, typically happens when a user
|
|
# # has leftover files from a previous non-flatpak install
|
|
# - type: patch
|
|
# path: rd-submodules/primehack/detectflatpak.patch
|
|
# # version strings must match exactly for online multiplayer
|
|
# - type: patch
|
|
# path: rd-submodules/primehack/nodirtyversion.patch
|
|
# - type: script
|
|
# commands:
|
|
# - for i in {0..9}; do
|
|
# - test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
|
|
# - done
|
|
# - dolphin-emu "$@"
|
|
# dest-filename: dolphin-emu-wrapper
|
|
|
|
# PRIMEHACK - END
|
|
|
|
# PPSSPP - START
|
|
# https://github.com/flathub/org.ppsspp.PPSSPP
|
|
|
|
- name: ppsspp
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- '-DUSE_SYSTEM_FFMPEG=OFF' # turn this on?
|
|
- '-DUSE_SYSTEM_LIBZIP=ON'
|
|
- '-DUSE_SYSTEM_ZSTD=ON'
|
|
|
|
- '-DUSE_WAYLAND_WSI=ON'
|
|
- '-DUSING_X11_VULKAN=ON'
|
|
- '-DUSING_QT_UI=OFF'
|
|
|
|
- '-DBUILD_TESTING=OFF'
|
|
- '-DOpenGL_GL_PREFERENCE=GLVND'
|
|
build-options:
|
|
- '-DX86_64=ON'
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/hrydgard/ppsspp.git
|
|
tag: v1.12.3
|
|
commit: ce0a45cf0fcdd5bebf32208b9998f68dfc1107b7
|
|
x-checker-data:
|
|
type: git
|
|
tag-pattern: "^v([\\d.]+)$"
|
|
is-main-source: true
|
|
|
|
# PPSSPP - END
|
|
|
|
# External manifests end
|
|
|
|
|
|
- name: retrodeck
|
|
buildsystem: simple
|
|
build-commands:
|
|
|
|
# Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon
|
|
- rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml
|
|
- cp es_find_rules.xml /app/share/emulationstation/resources/systems/unix/
|
|
- rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml
|
|
- cp es_systems.xml /app/share/emulationstation/resources/systems/unix/
|
|
# These must be put in home folder, managed by retrodeck.sh
|
|
- cp es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
|
|
|
|
# Logo, res
|
|
- rm -f /app/share/emulationstation/resources/graphics/splash.svg
|
|
- cp splash.svg /app/share/emulationstation/resources/graphics/splash.svg
|
|
- cp icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
|
|
|
|
# Tools
|
|
- mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
|
|
- cp start-*.sh ${FLATPAK_DEST}/retrodeck/tools/
|
|
- cp move-roms.sh ${FLATPAK_DEST}/retrodeck/tools/
|
|
- cp tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
|
|
|
|
- cp retrodeck.sh /app/bin/retrodeck.sh
|
|
- chmod +x /app/bin/retrodeck.sh
|
|
|
|
# Desktop entry
|
|
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
|
|
|
|
# Steam Grids - When BoilR comes it will be deprecated
|
|
- mkdir -p ${FLATPAK_DEST}/retrodeck/steam/
|
|
- cp banner_main.png ${FLATPAK_DEST}/retrodeck/steam/
|
|
- cp poster_main.png ${FLATPAK_DEST}/retrodeck/steam/
|
|
- cp poster_main_nodecklogo.png ${FLATPAK_DEST}/retrodeck/steam/
|
|
|
|
# Configuring emulators:
|
|
- mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# RetroArch
|
|
- cp retroarch.cfg ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# Dolphin
|
|
- cp Dolphin.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# Yuzu
|
|
- cp yuzu-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# Pcsx2
|
|
- cp PCSX2_ui.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# MelonDS
|
|
- cp melonDS.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# CITRA
|
|
- cp citra-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
# RPCS3
|
|
- cp config.yml ${FLATPAK_DEST}/retrodeck/emu-configs/
|
|
|
|
# Placing appdata
|
|
- mkdir -p ${FLATPAK_DEST}/share/appdata
|
|
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
|
|
|
|
sources:
|
|
- type: dir
|
|
path: es_configs
|
|
- type: file
|
|
path: retrodeck.sh
|
|
- type: dir
|
|
path: emu-configs
|
|
- 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
|
|
|