From abb44dbb9102569a2db9578db19c7e3a33685a34 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sat, 26 Mar 2022 17:45:56 +0900 Subject: [PATCH] Added shared modules, preparing for yuzu integration. --- .gitmodules | 3 + build-flatpak.sh | 40 +++++--- com.xargon.retrodeck.yml | 192 +++++++++++++++++++++++++++++++++++++-- shared-modules | 1 + 4 files changed, 212 insertions(+), 24 deletions(-) create mode 100644 .gitmodules create mode 160000 shared-modules diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..1e7a9909 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "shared-modules"] + path = shared-modules + url = https://github.com/flathub/shared-modules.git diff --git a/build-flatpak.sh b/build-flatpak.sh index 6155a489..119f9921 100755 --- a/build-flatpak.sh +++ b/build-flatpak.sh @@ -13,21 +13,29 @@ sudo pacman -S flatpak-builder flatpak install org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 cd $INSTALL_DIR -# To update change branch and update the manifest with the retroarch data here: + +# External flatpaks import +# To update change branch and update the manifest. +# Some json must be converted with this: https://codebeautify.org/json-to-yaml + +# RetroArch # https://github.com/flathub/org.libretro.RetroArch/blob/master/org.libretro.RetroArch.json -# must be converted with this: https://codebeautify.org/json-to-yaml git clone --recursive --branch update-v1.10.2 https://github.com/flathub/org.libretro.RetroArch.git # removing not needed and potentially dangerous files -rm -f org.libretro.RetroArch/retroarch.cfg -rm -f org.libretro.RetroArch/README.md -rm -f org.libretro.RetroArch/org.libretro.RetroArch.json -rm -f org.libretro.RetroArch/COPYING -rm -f org.libretro.RetroArch/.* -mv -n org.libretro.RetroArch/* $INSTALL_DIR - - - +#rm -rf org.libretro.RetroArch/shared-modules +#rm -f org.libretro.RetroArch/retroarch.cfg +#rm -f org.libretro.RetroArch/README.md +#rm -f org.libretro.RetroArch/org.libretro.RetroArch.json +#rm -f org.libretro.RetroArch/COPYING +#rm -rf org.libretro.RetroArch/.* +ln -s org.libretro.RetroArch/* $INSTALL_DIR/ +# Yuzu +# https://github.com/flathub/org.yuzu_emu.yuzu/blob/master/org.yuzu_emu.yuzu.json +git clone --recursive https://github.com/flathub/org.yuzu_emu.yuzu +#rm -rf org.yuzu_emu.yuzu/shared-modules +#rm -rf org.yuzu_emu.yuzu/.* +ln -s org.yuzu_emu.yuzu/* $INSTALL_DIR/ cd $INSTALL_DIR @@ -43,10 +51,12 @@ flatpak-builder retrodeck-flatpak com.xargon.retrodeck.yml --force-clean # flatpak run --command=/bin/bash com.xargon.retrodeck # Cleaning up -# do you want to remove the downloaded data? -# if so: -rm -rf org.libretro.RetroArch +#rm -rf org.libretro.RetroArch +#rm -rf org.yuzu_emu.yuzu -echo "Building terminated, you can install retrodeck by typing `flatpak run com.xargon.retrodeck`." +# removing orphaned symlinks +find -L . -name . -o -type d -prune -o -type l -exec rm {} + + +echo "Building terminated, you can install retrodeck by typing: flatpak run com.xargon.retrodeck" cd $PREVIOUS_DIR \ No newline at end of file diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml index 667b055f..5ee5a824 100644 --- a/com.xargon.retrodeck.yml +++ b/com.xargon.retrodeck.yml @@ -19,6 +19,9 @@ finish-args: - --talk-name=org.freedesktop.login1 - --filesystem=host - --filesystem=xdg-run/app/com.discordapp.Discord:create + # Yuzu + - --filesystem=home:ro + - --filesystem=/run/media:ro modules: @@ -79,15 +82,6 @@ modules: url: https://gitlab.com/leonstyhre/emulationstation-de.git branch: stable-1.2 - # - yuzu - # - name: ryujinx - # - name: xemu - # - name: rpcs3 - # - name: pcsx2 - # - name: vita3k - # - name: dolphin - # - name: arduboy - - name: art-book-next buildsystem: simple build-commands: @@ -219,6 +213,186 @@ modules: # RetroArch - END + # Yuzu - https://github.com/flathub/org.yuzu_emu.yuzu + + #- shared-modules/libusb/libusb.json + #- 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=963' + # - '-DBUILD_TAG=mainline-963' + # - '-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 + # - >- + # install -Dm644 ../org.yuzu_emu.yuzu.metainfo.xml + # /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml + # - 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-963 + # commit: 15bf148daf441e69265ea99771e0f1d327c5c10e + # disable-shallow-clone: true + # x-checker-data: + # type: git + # tag-pattern: ^(mainline-0-\d+)$ + # - type: file + # path: org.yuzu_emu.yuzu.metainfo.xml + # - type: file + # path: yuzu-launcher.sh + # - type: file + # path: compatibility_list.json + + # Yuzu - END + + + # Ryujinx + # Xemu + # Rpcs3 + # pcsx2 + # vita3k + # dolphin + # arduboy + # External manifests end diff --git a/shared-modules b/shared-modules new file mode 160000 index 00000000..81b7b525 --- /dev/null +++ b/shared-modules @@ -0,0 +1 @@ +Subproject commit 81b7b525dbd79258a7e9fb3df57461977806fe69