RetroDECK/com.xargon.retrodeck.yml
2022-03-25 18:26:19 +09:00

427 lines
15 KiB
YAML

app-id: com.xargon.retrodeck
runtime: org.kde.Platform
runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
command: emulationstation
#command: retroarch #--appendconfig /app/retrodeck/retroarch/.config/retroarch.cfg
finish-args:
- --socket=x11
- --socket=wayland
- --socket=pulseaudio
- --share=ipc
- --share=network
- --device=all
- --filesystem=~/retrodeck/roms:create
- --allow=multiarch
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.login1
#- --env=LD_LIBRARY_PATH=/app/lib
#- --env=PATH=/app/bin:/usr/bin
modules:
- name: unappimage
buildsystem: simple
build-commands:
- make -C squashfs-tools -j ${FLATPAK_BUILDER_N_JOBS} install INSTALL_DIR=/app/bin
cleanup: ['*']
sources:
- type: git
url: https://github.com/refi64/unappimage
commit: d7f86f2a0d7ec3a69211125207d5f127386b849a
- name: rsync
buildsystem: autotools
config-opts:
- --disable-zstd
- --disable-xxhash
- --disable-md2man
sources:
- type: git
url: https://github.com/WayneD/rsync.git
tag: v3.2.3
commit: e94bad1c156fc3910f24e2b3b71a81b0b0bdeb70
cleanup:
- /share/man
# needed for reatroarch
- name: libusb
config-opts:
- --disable-static
build-commands:
- ./autogen.sh
- ./bootstrap.sh
- ./configure --prefix=/app
- make
- make install
cleanup:
- /lib/*.la
- /lib/pkgconfig
- /include
sources:
- type: archive
url: https://github.com/libusb/libusb/archive/v1.0.25.tar.gz
sha256: f9c4b7dad27a6196ca9ec3c6ec7fa446194342de326c71e030eb2c480895e169
post-install:
- install -Dm644 COPYING /app/share/licenses/libusb/COPYING
- name: retroarch
buildsystem: simple
build-commands:
- unappimage ./RetroArch-Linux-x86_64.AppImage
- ls -ln ./squashfs-root/usr/bin/
- rsync -avr --ignore-existing --remove-source-files ./squashfs-root/usr/ /app/
- mkdir -p /app/retrodeck/retroarch/.config
- mv RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/* /app/retrodeck/retroarch/.config/
- mkdir -p /app/retrodeck/retroarch/.config/database/cht
cleanup:
- RetroArch-Linux-x86_64.AppImage*
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.10.1/linux/x86_64/RetroArch.7z
sha256: 0ab48b247fd7ce05d9532f28b706f35a1c96da67b826a9a312d66b86b9dd8f39
- name: retroarch-assets
builsystem: simple
make-install-args:
- PREFIX=/app
post-install:
- cp -rf ./* /app/retrodeck/retroarch/.config/assets/
cleanup: ['*']
sources:
- type: archive
url: https://github.com/libretro/retroarch-assets/archive/948def88f11c8c62f85f606a1cd8f5a1bbad671b.zip
sha256: d7b2d79d6809521f73818117575f49b706a913cfc61822582d1f12a697944791
- name: retroarch-cores
buildsystem: simple
build-commands:
- cp ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/retrodeck/retroarch/.config/cores/
cleanup:
- RetroArch_cores.7z
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.10.1/linux/x86_64/RetroArch_cores.7z
sha256: 3467de291c0849947993a535b0f32e7c211878dcaf6a37a9f864cf50cbe824fd
- name: yuzu
buildsystem: simple
build-commands:
- unappimage ./yuzu*.AppImage
- mkdir -p /app/retrodeck/yuzu
- mv ./squashfs-root /app/retrodeck/yuzu
- ln -s ./usr/bin/yuzu /app/bin
# TODO: see how are the files and implement, edit the yuzu.sh script
cleanup: ['*']
sources:
- type: file
url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-957/yuzu-20220320-1ce8136c7.AppImage
sha256: 000b7f09aa562a1f844697ded35618cef3189f339a207759e11295f31589a40d
# - name: ryujinx
# - name: xemu
# - name: rpcs3
# - name: pcsx2
# - name: vita3k
# - name: dolphin
# - name: arduboy
# Needed for building EmulationStation
- name: freeimage
no-autogen: true
post-install:
- ls -ln /app
build-options:
#C++17 is not supported
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: 351elec-emulationstation
# buildsystem: simple
# build-commands:
# - install -Dm755 Splash.h -t /app/emulationstation/es-core/src/
# - install -Dm755 GuiMenu.cpp -t /app/emulationstation/es-app/src/guis/
# - cd /app/emulationstation
# - cmake -DENABLE_EMUELEC=1 -DGLES2=0 -DDISABLE_KODI=1 -DENABLE_FILEMANAGER=0 -DCEC=0 -DRG552=1
# - make -j$(nproc)
# - ln -s emulationstation /app/bin/emulationstation
## make-args:
## - -DENABLE_EMUELEC=1
## - -DGLES2=0
## - -DDISABLE_KODI=1
## - -DENABLE_FILEMANAGER=0
## - -DCEC=0
## - -DRG552=1
## cleanup: ['*']
# sources:
# - type: git
# url: https://github.com/351ELEC/351elec-emulationstation.git
# branch: 6b704cfa1161090de4ca1b5ec343ebab2060e7fc
# #- type: file
# # url: https://github.com/351ELEC/351elec-emulationstation/archive/6b704cfa1161090de4ca1b5ec343ebab2060e7fc.zip
# # sha256: 5d659033da662bf85d5986609e4d92c55e3c1c4a4c79e2461350134f509c47ac
# - type: file
# path: patches/Splash.h
# - type: file
# path: patches/GuiMenu.cpp
#- name: 351elec-emulationstation-prebuilt
# buildsystem: simple
# build-commands:
# - mkdir -p /app/emulationstation
# - rsync -avr --ignore-existing --remove-source-files * /app/emulationstation
# - ln -s /app/emulationstation/emulationstation /app/bin/emulationstation
# #post-install:
# # clean the /app/emulationstation folder from the source files
# #- cp lib*.so.* /app/lib/
# #cleanup: ['*']
# sources:
# - type: dir
# path: emulationstation
# - type: file
# path: es_systems.cfg
# - type: file
# path: es_settings.cfg
# - type: file
# path: es_input.cfg
# #- type: file
# # path: libfreeimage.so.3
# #- type: file
# # path: libvlc.so.5
# #- type: file
# # path: libGLU.so.1
# #- type: file
# # path: libjpeg.so.8
# #- type: file
# # path: libjxrglue.so.0
# #- type: file
# # path: libOpenEXR-3_1.so.30
# #- type: file
# # path: libIex-3_1.so.30
# #- type: file
# # path: libImath-3_1.so.29
# #- type: file
# # path: libraw.so.20
# #- type: file
# # path: libvlccore.so.9
# #- type: file
# # path: libjpegxr.so.0
# #- type: file
# # path: libIlmThread-3_1.so.30
# #- type: file
# # path: libjasper.so.4
# #- type: file
# # path: libidn.so.12
# #- type: file
# # path: libc.so.6
# #- type: file
# # path: libcurl.so.4
- name: 351elec-emulationstation
buildsystem: simple
build-commands:
#- install -Dm755 Splash.h -t /app/emulationstation/es-core/src/
#- install -Dm755 GuiMenu.cpp -t /app/emulationstation/es-app/src/guis/
- ls -ln
- cmake . -DDISABLE_KODI=1
- make
- ln -s emulationstation /app/bin/emulationstation
# cleanup: ['*']
sources:
- type: git
url: https://github.com/batocera-linux/batocera-emulationstation.git
branch: 779548e217311edb15d21a5316033292d2b452fc
#- type: file
# path: patches/Splash.h
#- type: file
# path: patches/GuiMenu.cpp
#- name: emulationstation-de
# buildsystem: simple
# build-commands:
# - unappimage download
# - rsync -avr --ignore-existing --remove-source-files ./squashfs-root/usr/ /app/
# - ln -s /app/share/emulationstation /app/emulationstation
# sources:
# - type: file
# url: https://gitlab.com/leonstyhre/emulationstation-de/-/package_files/32296532/download
# sha256: 1fd3e437539d54e90d0a17b4577a8c91a1987943470fcfbf3badba99d8dac879
- name: art-book-next
buildsystem: simple
build-commands:
- mkdir -p /app/emulationstation/themes/art-book-next
- mv -f * /app/emulationstation/themes/art-book-next/
cleanup: ['*']
sources:
- type: git
url: https://github.com/anthonycaccese/es-theme-art-book-next.git
branch: eaf73a4eefde22791681c7f430a238fb324bdeaf
# TODO 351elec-es-packages batocera-config batocera-scraper batocera-settings runemu.py setsettings.py
#- name: glibc
# buildsystem: simple
# build-commands:
# - tar --use-compress-program=unzstd -xvf glibc-2.35-3-x86_64.pkg.tar.zst
# - cp -r usr/lib/* /app/lib/
# cleanup: ['*']
# sources:
# - type: file
# path: glibc-2.35-3-x86_64.pkg.tar.zst
#- name: lib32-glibc
# buildsystem: simple
# build-commands:
# - tar --use-compress-program=unzstd -xvf lib32-glibc-2.35-3-x86_64.pkg.tar.zst
# - cp -r usr/lib/* /app/lib/
# cleanup: ['*']
# sources:
# - type: file
# path: lib32-glibc-2.35-3-x86_64.pkg.tar.zst
- name: retrodeck
buildsystem: simple
build-commands:
- mkdir -p ~/retrodeck/roms/bios
- mkdir -p ~/retrodeck/roms/3do
- mkdir -p ~/retrodeck/roms/amiga
- mkdir -p ~/retrodeck/roms/amigacd32
- mkdir -p ~/retrodeck/roms/amstradcpc
- mkdir -p ~/retrodeck/roms/arcade
- mkdir -p ~/retrodeck/roms/atari2600
- mkdir -p ~/retrodeck/roms/atari5200
- mkdir -p ~/retrodeck/roms/atari7800
- mkdir -p ~/retrodeck/roms/atarist
- mkdir -p ~/retrodeck/roms/atari800
- mkdir -p ~/retrodeck/roms/atomiswave
- mkdir -p ~/retrodeck/roms/channelf
- mkdir -p ~/retrodeck/roms/colecovision
- mkdir -p ~/retrodeck/roms/c64
- mkdir -p ~/retrodeck/roms/c128
- mkdir -p ~/retrodeck/roms/vic20
- mkdir -p ~/retrodeck/roms/laserdisc
- mkdir -p ~/retrodeck/roms/dreamcast
- mkdir -p ~/retrodeck/roms/easyrpg
- mkdir -p ~/retrodeck/roms/famicom
- mkdir -p ~/retrodeck/roms/fbn
- mkdir -p ~/retrodeck/roms/gb
- mkdir -p ~/retrodeck/roms/gbh
- mkdir -p ~/retrodeck/roms/gameandwatch
- mkdir -p ~/retrodeck/roms/gba
- mkdir -p ~/retrodeck/roms/fds
- mkdir -p ~/retrodeck/roms/c16
- mkdir -p ~/retrodeck/roms/ggh
- mkdir -p ~/retrodeck/roms/gbah
- mkdir -p ~/retrodeck/roms/intellivision
- mkdir -p ~/retrodeck/roms/gbch
- mkdir -p ~/retrodeck/roms/atarilynx
- mkdir -p ~/retrodeck/roms/mame
- mkdir -p ~/retrodeck/roms/dos
- mkdir -p ~/retrodeck/roms/snesmsu1
- mkdir -p ~/retrodeck/roms/msx
- mkdir -p ~/retrodeck/roms/msx2
- mkdir -p ~/retrodeck/roms/naomi
- mkdir -p ~/retrodeck/roms/neogeo
- mkdir -p ~/retrodeck/roms/ngp
- mkdir -p ~/retrodeck/roms/nds
- mkdir -p ~/retrodeck/roms/n64
- mkdir -p ~/retrodeck/roms/nes
- mkdir -p ~/retrodeck/roms/nesh
- mkdir -p ~/retrodeck/roms/ngpc
- mkdir -p ~/retrodeck/roms/neocd
- mkdir -p ~/retrodeck/roms/pc-9800
- mkdir -p ~/retrodeck/roms/pcengine
- mkdir -p ~/retrodeck/roms/pcenginecd
- mkdir -p ~/retrodeck/roms/pcfx
- mkdir -p ~/retrodeck/roms/openbor
- mkdir -p ~/retrodeck/roms/piece
- mkdir -p ~/retrodeck/roms/odyssey2
- mkdir -p ~/retrodeck/roms/psp
- mkdir -p ~/retrodeck/roms/pspminis
- mkdir -p ~/retrodeck/roms/pokemini
- mkdir -p ~/retrodeck/roms/homebrew
- mkdir -p ~/retrodeck/roms/ports
- mkdir -p ~/retrodeck/roms/sc-3000
- mkdir -p ~/retrodeck/roms/scummvm
- mkdir -p ~/retrodeck/roms/psx
- mkdir -p ~/retrodeck/roms/segacd
- mkdir -p ~/retrodeck/roms/sega32x
- mkdir -p ~/retrodeck/roms/genesis
- mkdir -p ~/retrodeck/roms/genh
- mkdir -p ~/retrodeck/roms/mastersystem
- mkdir -p ~/retrodeck/roms/megadrive
- mkdir -p ~/retrodeck/roms/megaduck
- mkdir -p ~/retrodeck/roms/saturn
- mkdir -p ~/retrodeck/roms/sg-1000
- mkdir -p ~/retrodeck/roms/x1
- mkdir -p ~/retrodeck/roms/zxspectrum
- mkdir -p ~/retrodeck/roms/zx81
- mkdir -p ~/retrodeck/roms/pc-8800
- mkdir -p ~/retrodeck/roms/snes
- mkdir -p ~/retrodeck/roms/supergrafx
- mkdir -p ~/retrodeck/roms/pico-8
- mkdir -p ~/retrodeck/roms/megacd
- mkdir -p ~/retrodeck/roms/snesh
- mkdir -p ~/retrodeck/roms/satellaview
- mkdir -p ~/retrodeck/roms/sfc
- mkdir -p ~/retrodeck/roms/sufami
- mkdir -p ~/retrodeck/roms/tic-80
- mkdir -p ~/retrodeck/roms/tg16
- mkdir -p ~/retrodeck/roms/solarus
- mkdir -p ~/retrodeck/roms/vectrex
- mkdir -p ~/retrodeck/roms/gbc
- mkdir -p ~/retrodeck/roms/videopac
- mkdir -p ~/retrodeck/roms/virtualboy
- mkdir -p ~/retrodeck/roms/wonderswan
- mkdir -p ~/retrodeck/roms/wonderswancolor
- mkdir -p ~/retrodeck/roms/ecwolf
- mkdir -p ~/retrodeck/roms/x68000
- mkdir -p ~/retrodeck/roms/build
- mkdir -p ~/retrodeck/roms/tools
- mkdir -p ~/retrodeck/roms/imageviewer
- mkdir -p ~/retrodeck/roms/gamegear
- mkdir -p ~/retrodeck/roms/tg16cd
- mkdir -p ~/retrodeck/roms/j2me
- mkdir -p ~/retrodeck/roms/uzebox
- mkdir -p ~/retrodeck/roms/supervision
- mkdir -p ~/retrodeck/roms/doom
- mkdir -p ~/retrodeck/roms/switch
- mkdir -p ~/retrodeck/roms/wii
- mkdir -p ~/retrodeck/roms/gc
- mkdir -p ~/retrodeck/roms/3ds
#- install -Dm755 retrodeck.sh -t /app/retrodeck/
- install -Dm755 export_func.sh -t /app/retrodeck/
#- ln -s /app/retrodeck/retrodeck.sh /app/bin/retrodeck.sh
- ln -s /app/retrodeck/export_func.sh /app/bin/export_func.sh
- rm -f /app/retrodeck/retroarch/.config/retroarch.cfg
- mv retroarch.cfg /app/retrodeck/retroarch/.config/
- mkdir -p /app/retrodeck/.config/
- touch /app/retrodeck/.config/.OS_ARCH
- echo "DECK" >> /app/retrodeck/.config/.OS_ARCH
# move other files (check old install script)
#cleanup: ['*']
sources:
#- type: file
# path: retrodeck.sh
- type: file
path: export_func.sh
- type: file
path: retroarch.cfg
# create desktop entry