From 29df2a1633df3c8dd3d73ab1bb7e34ead6f84171 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Fri, 19 Jul 2024 19:06:25 +0900 Subject: [PATCH] RPCS3: migrated to AppImage --- net.retrodeck.retrodeck.yml | 234 +++++------------------------------- 1 file changed, 30 insertions(+), 204 deletions(-) diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index f98bc7de..681e02c6 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -589,8 +589,8 @@ modules: - name: xemu-dummy-hdd buildsystem: simple build-commands: - - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU - - mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2" + - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU + - mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2" sources: - type: archive url: https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip @@ -614,49 +614,24 @@ modules: # MELONDS - END # RPCS3 - START - # https://github.com/flathub/net.rpcs3.RPCS3 + # https://rpcs3.net/download - name: rpcs3 - buildsystem: cmake-ninja - builddir: true - build-options: - append-ld-library-path: /usr/lib/sdk/llvm18/lib - append-path: /usr/lib/sdk/llvm18/bin - cflags: &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong - -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection - -fcf-protection -fno-omit-frame-pointer - 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=OFF - - -DUSE_NATIVE_INSTRUCTIONS=OFF - - -DUSE_PRECOMPILED_HEADERS=OFF - - -DUSE_SDL=ON - - -DUSE_SYSTEM_CURL=ON - - -DUSE_SYSTEM_FFMPEG=OFF # Disabled this to force RPCS3 to use our built FFMPEG - - -DUSE_SYSTEM_LIBPNG=ON - - -DUSE_SYSTEM_SDL=ON - - -DUSE_SYSTEM_ZLIB=ON - - -Wno-dev - post-install: - - cp /usr/lib/sdk/llvm18/lib/libLLVM.so.18.1 /app/lib/ - - |- - 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)"; + buildsystem: simple + build-commands: + - chmod +x *.AppImage + - ./*.AppImage --appimage-extract + - mkdir -p "${FLATPAK_DEST}/app" + - cp -r squashfs-root/usr/bin* "${FLATPAK_DEST}/app/bin" + - cp -r squashfs-root/usr/lib* "${FLATPAK_DEST}/app/lib" + - cp -r squashfs-root/usr/share* "${FLATPAK_DEST}/app/share" + #TODO: - cp -r squashfs-root/usr/optional* # maybe aloready included in flatpak runtime + #TODO: - cp -r squashfs-root/usr/plugins* # maybe aloready included in qt + #TODO: Do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-qt-hook.sh sources: - - type: git - url: https://github.com/RPCS3/rpcs3.git - commit: 5b973448bf75a239f34fd9c7698c8a02b04e2ea9 + - type: + url: https://github.com/RPCS3/rpcs3-binaries-linux/releases/download/build-ebcb4034119955991a17210af2a45a672fc9533d/rpcs3-v0.0.32-16685-ebcb4034_linux64.AppImage + sha526: 2553D56E01A3E3058FA9CEB4E1D61A07EAF2C5BBA9E96B29E8923914D89F6E17 # RPCS3 - END @@ -699,10 +674,10 @@ modules: # PRIMEHACK - END - # Duckstation-AppImage - START - AUTOUPDATED + # Duckstation - START # https://github.com/stenzek/duckstation/releases/tag/preview - - name: Duckstation-AppImage + - name: duckstation buildsystem: simple build-commands: - chmod +x DuckStation-*.AppImage @@ -715,173 +690,23 @@ modules: url: https://github.com/stenzek/duckstation/releases/download/v0.1-6937/DuckStation-x64.AppImage sha256: 8a16f034cc8b11341ed9ad382226549301736794582bdec46a5e19b3ca981e07 - # Duckstation-AppImage - END + # Duckstation - END # Cemu - START - # needed libusb 1.0.26 but we provide 1.0.27, it could break # https://github.com/cemu-project/Cemu/releases - # https://github.com/flathub/info.cemu.Cemu - - name: hidapi - buildsystem: cmake-ninja - sources: - - type: archive - url: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.14.0.tar.gz - sha256: a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd - x-checker-data: - type: anitya - project-id: 5594 - stable-only: true - url-template: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-$version.tar.gz - - - name: boost + - name: cemu buildsystem: simple build-commands: - - ./bootstrap.sh --prefix=${FLATPAK_DEST} --with-toolset=gcc --with-libraries=filesystem,system,program_options,nowide - - ./b2 install variant=release link=shared runtime-link=shared cxxflags="$CXXFLAGS" - linkflags="$LDFLAGS" -j ${FLATPAK_BUILDER_N_JOBS} - cleanup: - - /include - - /lib/cmake + - chmod +x *.AppImage + - ./*.AppImage --appimage-extract + - mkdir -p "${FLATPAK_DEST}/app" + - cp -r squashfs-root/usr/* "${FLATPAK_DEST}/app" + #TODO: do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-gtk.sh sources: - - type: archive - url: https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.tar.bz2 - sha256: 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617 - x-checker-data: - type: anitya - project-id: 6845 - stable-only: true - url-template: https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_${major}_${minor}_$patch.tar.bz2 - - - name: libzip - buildsystem: cmake-ninja - config-opts: - - -DBUILD_DOC=OFF - - -DBUILD_EXAMPLES=OFF - - -DBUILD_REGRESS=OFF - - -DBUILD_TOOLS=OFF - cleanup: - - /bin - - /include - - /lib/cmake - - /lib/pkgconfig - sources: - - type: archive - url: https://libzip.org/download/libzip-1.10.1.tar.xz - mirror-urls: - - https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.xz - sha256: dc3c8d5b4c8bbd09626864f6bcf93de701540f761d76b85d7c7d710f4bd90318 - x-checker-data: - type: anitya - project-id: 10649 - url-template: https://libzip.org/download/libzip-$version.tar.xz - - - name: fmt - buildsystem: cmake-ninja - config-opts: - - -DFMT_TEST=Off - cleanup: - - '*' - sources: - - type: archive - url: https://github.com/fmtlib/fmt/archive/9.1.0.tar.gz - sha256: 5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2 - x-checker-data: - type: anitya - project-id: 11526 - url-template: https://github.com/fmtlib/fmt/archive/$version.tar.gz - versions: {<: '10.0'} - - - name: wxWidgets - buildsystem: cmake-ninja - cleanup: - - /bin - - /include - - /lib/cmake - - /lib/wx - - /share - sources: - - type: archive - url: https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.5/wxWidgets-3.2.5.tar.bz2 - sha256: 0ad86a3ad3e2e519b6a705248fc9226e3a09bbf069c6c692a02acf7c2d1c6b51 - x-checker-data: - type: anitya - project-id: 5150 - stable-only: true - url-template: https://github.com/wxWidgets/wxWidgets/releases/download/v$version/wxWidgets-$version.tar.bz2 - versions: {'!=': 3.2.4-with-msvs2012-fix} - - - name: Cemu - buildsystem: cmake-ninja - config-opts: - - -DPORTABLE=false - - -DENABLE_VCPKG=false - sources: - - type: git - url: https://github.com/cemu-project/Cemu - # TODO: Update tag pattern on next stable ^v([\d.]+)$ - x-checker-data: - type: git - tag-pattern: ^v([\d.]+-\d+)$ - tag: v2.0-88 - commit: aefbb918beb8718af8f190a73018ff63bf801d95 - disable-submodules: true - - type: git - url: https://github.com/mozilla/cubeb - commit: 6c1a6e151c1f981a2800d40af7c041cfcccc710e - dest: dependencies/cubeb - - type: git - url: https://github.com/Exzap/ZArchive - dest: dependencies/ZArchive - tag: v0.1.2 - - type: git - url: https://github.com/ocornut/imgui - dest: dependencies/imgui - commit: f65bcf481ab34cd07d3909aab1479f409fa79f2f - - type: shell - commands: - - sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe - --tag | sed "s/v2.0-//")\" CACHE STRING \"\")/g" -i CMakeLists.txt - - type: script - commands: - - | - for d in DiscordCanary Discord; do - for i in {0..9}; do - test -S $XDG_RUNTIME_DIR/discord-ipc-$i || - ln -sf {app/com.discordapp.$d,$XDG_RUNTIME_DIR}/discord-ipc-$i; - done - done - Cemu_relwithdebinfo "$@" - dest-filename: Cemu-wrapper - - type: script - dest-filename: dev_release_metainfo.py - commands: - - | - import os - import xml.etree.ElementTree as ET - meta_file = os.environ.get('AS_META_FILE') - version = os.environ.get('AS_META_VERSION') - release_type = os.environ.get('AS_META_TYPE') - release_date = os.environ.get('AS_META_DATE') - release_url = os.environ.get('AS_META_URL') - tree = ET.parse(meta_file) - root = tree.getroot() - el_releases = root.find('releases') - for el_release in el_releases: - el_releases.remove(el_release) - el_release = ET.SubElement(el_releases, 'release') - el_url = ET.SubElement(el_release, 'url') - el_url.text = release_url - el_release.attrib['type'] = release_type - el_release.attrib['date'] = release_date - el_release.attrib['version'] = version - ET.indent(tree, space=' ', level=0) - tree.write(meta_file, encoding='utf8') - post-install: - - cp -r bin/gameProfiles ${FLATPAK_DEST}/share/Cemu/ - - cp -r bin/resources ${FLATPAK_DEST}/share/Cemu/ - - install -Dm644 -t ${FLATPAK_DEST}/share/icons/hicolor/128x128/apps/ dist/linux/info.cemu.Cemu.png - - install -D -t ${FLATPAK_DEST}/bin/ bin/Cemu_relwithdebinfo Cemu-wrapper + - type: + url: https://github.com/cemu-project/Cemu/releases/download/v2.0-88/Cemu-2.0-88-x86_64.AppImage + sha526: 1af1ad5322df5fa0e2a97588c7486604daf42deb8c4d07a2b885047d9701fed0 # Cemu - END @@ -907,6 +732,7 @@ modules: # Vita3K - END # SOLARUS - START + # why from source: they only provide a snap # https://github.com/flathub/org.solarus_games.solarus.Launcher - name: luajit