pax_global_header00006660000000000000000000000064147403445720014524gustar00rootroot0000000000000052 comment=b88a2a787b22e770009174e22660d0db8bfb7eb9 yuzu-0-1734+ds/000077500000000000000000000000001474034457200132375ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/000077500000000000000000000000001474034457200137105ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/000077500000000000000000000000001474034457200153775ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/android/000077500000000000000000000000001474034457200170175ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/android/build.sh000077500000000000000000000012751474034457200204620ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2023 yuzu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later export NDK_CCACHE="$(which ccache)" ccache -s BUILD_FLAVOR="mainline" BUILD_TYPE="release" if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then BUILD_TYPE="relWithDebInfo" fi if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" fi cd src/android chmod +x ./gradlew ./gradlew "assemble${BUILD_FLAVOR}${BUILD_TYPE}" "bundle${BUILD_FLAVOR}${BUILD_TYPE}" ccache -s if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then rm "${ANDROID_KEYSTORE_FILE}" fi yuzu-0-1734+ds/.ci/scripts/android/eabuild.sh000066400000000000000000000012631474034457200207620ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2024 yuzu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later export NDK_CCACHE="$(which ccache)" ccache -s export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" base64 --decode <<< "${EA_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}" export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}" export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json" base64 --decode <<< "${EA_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}" ./gradlew "publishEaReleaseBundle" ccache -s if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then rm "${ANDROID_KEYSTORE_FILE}" fi yuzu-0-1734+ds/.ci/scripts/android/mainlinebuild.sh000066400000000000000000000013051474034457200221660ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2024 yuzu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later export NDK_CCACHE="$(which ccache)" ccache -s export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" base64 --decode <<< "${MAINLINE_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}" export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}" export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json" base64 --decode <<< "${MAINLINE_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}" ./gradlew "publishMainlineReleaseBundle" ccache -s if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then rm "${ANDROID_KEYSTORE_FILE}" fi yuzu-0-1734+ds/.ci/scripts/android/upload.sh000077500000000000000000000013071474034457200206430ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2023 yuzu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later . ./.ci/scripts/common/pre-upload.sh REV_NAME="yuzu-${GITDATE}-${GITREV}" BUILD_FLAVOR="mainline" BUILD_TYPE_LOWER="release" BUILD_TYPE_UPPER="Release" if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then BUILD_TYPE_LOWER="relWithDebInfo" BUILD_TYPE_UPPER="RelWithDebInfo" fi cp src/android/app/build/outputs/apk/"${BUILD_FLAVOR}/${BUILD_TYPE_LOWER}/app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.apk" \ "artifacts/${REV_NAME}.apk" cp src/android/app/build/outputs/bundle/"${BUILD_FLAVOR}${BUILD_TYPE_UPPER}"/"app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.aab" \ "artifacts/${REV_NAME}.aab" yuzu-0-1734+ds/.ci/scripts/clang/000077500000000000000000000000001474034457200164635ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/clang/docker.sh000077500000000000000000000014651474034457200202770ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2021 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later # Exit on error, rather than continuing with the rest of the script. set -e ccache -s mkdir build || true && cd build cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \ -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DDISPLAY_VERSION=$1 \ -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ -DENABLE_QT_TRANSLATION=ON \ -DUSE_DISCORD_PRESENCE=ON \ -DYUZU_CRASH_DUMPS=ON \ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ -DYUZU_USE_BUNDLED_FFMPEG=ON \ -GNinja ninja ccache -s ctest -VV -C Release yuzu-0-1734+ds/.ci/scripts/clang/exec.sh000066400000000000000000000007131474034457200177440ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2021 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later mkdir -p "ccache" || true chmod a+x ./.ci/scripts/clang/docker.sh # the UID for the container yuzu user is 1027 sudo chown -R 1027 ./ docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/clang/docker.sh "$1" sudo chown -R $UID ./ yuzu-0-1734+ds/.ci/scripts/clang/upload.sh000077500000000000000000000007621474034457200203130ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2021 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later . .ci/scripts/common/pre-upload.sh REV_NAME="yuzu-linux-${GITDATE}-${GITREV}" ARCHIVE_NAME="${REV_NAME}.tar.xz" COMPRESSION_FLAGS="-cJvf" if [ "${RELEASE_NAME}" = "mainline" ]; then DIR_NAME="${REV_NAME}" else DIR_NAME="${REV_NAME}_${RELEASE_NAME}" fi mkdir "$DIR_NAME" cp build/bin/yuzu-cmd "$DIR_NAME" cp build/bin/yuzu "$DIR_NAME" . .ci/scripts/common/post-upload.sh yuzu-0-1734+ds/.ci/scripts/common/000077500000000000000000000000001474034457200166675ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/common/post-upload.sh000066400000000000000000000012011474034457200214640ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later # Copy documentation cp LICENSE.txt "$DIR_NAME" cp README.md "$DIR_NAME" if [[ -z "${NO_SOURCE_PACK}" ]]; then git clone --depth 1 file://$(readlink -e .) ${REV_NAME}-source tar -cJvf "${REV_NAME}-source.tar.xz" ${REV_NAME}-source cp -v "${REV_NAME}-source.tar.xz" "$DIR_NAME" cp -v "${REV_NAME}-source.tar.xz" "${ARTIFACTS_DIR}/" fi tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$DIR_NAME" # move the compiled archive into the artifacts directory to be uploaded by travis releases mv "$ARCHIVE_NAME" "${ARTIFACTS_DIR}/" yuzu-0-1734+ds/.ci/scripts/common/pre-upload.sh000066400000000000000000000004301474034457200212700ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" GITREV="`git show -s --format='%h'`" ARTIFACTS_DIR="$PWD/artifacts" mkdir -p "${ARTIFACTS_DIR}/" yuzu-0-1734+ds/.ci/scripts/format/000077500000000000000000000000001474034457200166675ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/format/docker.sh000066400000000000000000000003271474034457200204740ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later # Run clang-format cd /yuzu chmod a+x ./.ci/scripts/format/script.sh ./.ci/scripts/format/script.sh yuzu-0-1734+ds/.ci/scripts/format/exec.sh000066400000000000000000000005731474034457200201540ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later chmod a+x ./.ci/scripts/format/docker.sh # the UID for the container yuzu user is 1027 sudo chown -R 1027 ./ docker run -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-clang-format /bin/bash -ex /yuzu/.ci/scripts/format/docker.sh sudo chown -R $UID ./ yuzu-0-1734+ds/.ci/scripts/format/script.sh000077500000000000000000000016051474034457200205340ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later shopt -s nullglob globstar if git grep -nrI '\s$' src **/*.yml **/*.txt **/*.md Doxyfile .gitignore .gitmodules .ci* dist/*.desktop dist/*.svg dist/*.xml; then echo Trailing whitespace found, aborting exit 1 fi # Default clang-format points to default 3.5 version one CLANG_FORMAT="${CLANG_FORMAT:-clang-format-15}" "$CLANG_FORMAT" --version # Turn off tracing for this because it's too verbose set +x # Check everything for branch pushes FILES_TO_LINT="$(find src/ -name '*.cpp' -or -name '*.h')" for f in $FILES_TO_LINT; do echo "$f" "$CLANG_FORMAT" -i "$f" done DIFF=$(git -c core.fileMode=false diff) if [ ! -z "$DIFF" ]; then echo "!!! Not compliant to coding style, here is the fix:" echo "$DIFF" exit 1 fi cd src/android ./gradlew ktlintCheck yuzu-0-1734+ds/.ci/scripts/linux/000077500000000000000000000000001474034457200165365ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/linux/docker.sh000077500000000000000000000053641474034457200203540ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later # Exit on error, rather than continuing with the rest of the script. set -e ccache -s mkdir build || true && cd build cmake .. \ -DBoost_USE_STATIC_LIBS=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DDISPLAY_VERSION=$1 \ -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ -DENABLE_QT_TRANSLATION=ON \ -DUSE_DISCORD_PRESENCE=ON \ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ -DYUZU_USE_BUNDLED_FFMPEG=ON \ -DYUZU_ENABLE_LTO=ON \ -DYUZU_CRASH_DUMPS=ON \ -GNinja ninja ccache -s ctest -VV -C Release # Separate debug symbols from specified executables for EXE in yuzu; do EXE_PATH="bin/$EXE" # Copy debug symbols out objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug # Add debug link and strip debug symbols objcopy -g --add-gnu-debuglink=$EXE_PATH.debug $EXE_PATH $EXE_PATH.out # Overwrite original with stripped copy mv $EXE_PATH.out $EXE_PATH done # Strip debug symbols from all executables find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';' DESTDIR="$PWD/AppDir" ninja install rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester # Download tools needed to build an AppImage wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/appimage/deploy-linux.sh wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so # Set executable bit chmod 755 \ deploy-linux.sh \ AppRun.sh \ exec-x86_64.so \ # Workaround for https://github.com/AppImage/AppImageKit/issues/828 export APPIMAGE_EXTRACT_AND_RUN=1 mkdir -p AppDir/usr/optional mkdir -p AppDir/usr/optional/libstdc++ mkdir -p AppDir/usr/optional/libgcc_s # Deploy yuzu's needed dependencies DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir # Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print # Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al. # See https://github.com/darealshinji/AppImageKit-checkrt cp exec-x86_64.so AppDir/usr/optional/exec.so cp AppRun.sh AppDir/AppRun cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6 cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1 yuzu-0-1734+ds/.ci/scripts/linux/exec.sh000066400000000000000000000013571474034457200200240ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later mkdir -p "ccache" || true chmod a+x ./.ci/scripts/linux/docker.sh # the UID for the container yuzu user is 1027 sudo chown -R 1027 ./ # The environment variables listed below: # AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION # are requested in src/common/CMakeLists.txt and appear to be provided somewhere in Azure DevOps docker run -e AZURECIREPO -e TITLEBARFORMATIDLE -e TITLEBARFORMATRUNNING -e DISPLAYVERSION -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh "$1" sudo chown -R $UID ./ yuzu-0-1734+ds/.ci/scripts/linux/upload.sh000077500000000000000000000042571474034457200203710ustar00rootroot00000000000000#!/bin/bash -ex # SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later . .ci/scripts/common/pre-upload.sh APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage" BASE_NAME="yuzu-linux" REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}" ARCHIVE_NAME="${REV_NAME}.tar.xz" COMPRESSION_FLAGS="-cJvf" if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then DIR_NAME="${BASE_NAME}-${RELEASE_NAME}" else DIR_NAME="${REV_NAME}-${RELEASE_NAME}" fi mkdir "$DIR_NAME" cp build/bin/yuzu-cmd "$DIR_NAME" if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then cp build/bin/yuzu "$DIR_NAME" fi # Build an AppImage cd build wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage chmod 755 appimagetool-x86_64.AppImage # if FUSE is not available, then fallback to extract and run if ! ./appimagetool-x86_64.AppImage --version; then export APPIMAGE_EXTRACT_AND_RUN=1 fi # Don't let AppImageLauncher ask to integrate EA if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop fi if [ "${RELEASE_NAME}" = "mainline" ]; then # Generate update information if releasing to mainline ./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}" else ./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}" fi cd .. # Copy the AppImage and update info to the artifacts directory and avoid compressing it cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/" if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/" fi # Copy the AppImage to the general release directory and remove git revision info if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage" fi # Copy debug symbols to artifacts cd build/bin tar $COMPRESSION_FLAGS "${ARTIFACTS_DIR}/${REV_NAME}-debug.tar.xz" *.debug cd - . .ci/scripts/common/post-upload.sh yuzu-0-1734+ds/.ci/scripts/merge/000077500000000000000000000000001474034457200164765ustar00rootroot00000000000000yuzu-0-1734+ds/.ci/scripts/merge/apply-patches-by-label-private.py000066400000000000000000000035071474034457200247640ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2019 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later # Download all pull requests as patches that match a specific label # Usage: python download-patches-by-label.py