Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37569612
en ru br
ALT Linux repos
S:1563-alt1

Group :: Emulators
RPM: yuzu

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%define optflags_lto -flto=thin
%define llvm_version 17.0

# git describe mainline-0-%version

%define git_descr mainline-636-12601-g84f0a23ff11

%define sirit_commit ab75463999f4f3291976b079d42d52ee91eebf3f
%define mbedtls_commit 8c88150ca139e06aa2aae8349df8292a88148ea1
%define tzdb_to_nx_date 220816

Name: yuzu
Version: 1553
Release: alt1

Summary: Nintendo Switch emulator/debugger
License: GPLv3+
Group: Emulators

Url: https://%name-emu.org/
Packager: Nazarov Denis <nenderus at altlinux.org>

ExclusiveArch: x86_64 aarch64

BuildRequires(pre): libavfilter-devel

# https://github.com/%name-emu/%name-mainline/archive/mainline-0-%version/%name-mainline-mainline-0-%version.tar.gz

Source0: %name-mainline-mainline-0-%version.tar
# https://github.com/ReinUsesLisp/sirit/archive/%sirit_commit/sirit-%sirit_commit.tar.gz
Source1: sirit-%sirit_commit.tar
# https://github.com/yuzu-emu/mbedtls/archive/%mbedtls_commit/mbedtls-%mbedtls_commit.tar.gz
Source2: mbedtls-%mbedtls_commit.tar

Source3: https://github.com/lat9nq/tzdb_to_nx/releases/download/%tzdb_to_nx_date/%tzdb_to_nx_date.zip

Patch0: %name-cpp-jwt-version-alt.patch
Patch1: %name-vulkan-version-alt.patch

BuildRequires: /proc
BuildRequires: boost-asio-devel
BuildRequires: boost-filesystem-devel
BuildRequires: catch-devel
BuildRequires: clang-tools
BuildRequires: clang%llvm_version
BuildRequires: glslang
BuildRequires: libSDL2-devel
BuildRequires: libavcodec-devel
BuildRequires: libavfilter-devel
BuildRequires: libbrotli-devel
BuildRequires: libcpp-httplib-devel
BuildRequires: libcpp-jwt-devel
BuildRequires: libcubeb-devel
BuildRequires: libdynarmic-devel
BuildRequires: libedit-devel
BuildRequires: libenet-devel
BuildRequires: libffi-devel
BuildRequires: libinih-devel
BuildRequires: liblz4-devel
BuildRequires: libopus-devel
BuildRequires: libpolly%llvm_version-devel
BuildRequires: libswscale-devel
BuildRequires: libusb-devel
BuildRequires: libvulkan-memory-allocator-devel
BuildRequires: libxml2-devel
BuildRequires: libzstd-devel
BuildRequires: lld%llvm_version
BuildRequires: llvm%llvm_version-devel
BuildRequires: llvm%llvm_version-gold
BuildRequires: mlir%llvm_version-tools
BuildRequires: ninja-build
BuildRequires: nlohmann-json-devel
BuildRequires: python-modules-encodings
BuildRequires: python3-dev
BuildRequires: python3-module-mpl_toolkits
BuildRequires: qt6-tools-devel
BuildRequires: spirv-headers
BuildRequires: zlib-devel

%description
%name is an open source Nintendo Switch emulator/debugger.

%prep
%setup -n %name-mainline-mainline-0-%version -b 1 -b 2

%patch0 -p1
%patch1 -p1

%__mv -Tf ../sirit-%sirit_commit externals/sirit
%__mv -Tf ../mbedtls-%mbedtls_commit externals/mbedtls

# Enforce package versioning in GUI

sed -i \
-e 's| at GIT_BRANCH at |HEAD|g' \
-e 's| at GIT_DESC at |%git_descr|g' \
-e 's| at TITLE_BAR_FORMAT_IDLE at |%name %version|g' \
-e 's| at TITLE_BAR_FORMAT_RUNNING at |%name %version|g' \
src/common/scm_rev.cpp.in

%__rm .gitmodules

%build
export ALTWRAP_LLVM_VERSION=%llvm_version

sed -i -e 's/-Werror=shadow-uncaptured-local/-Wno-error=shadow-uncaptured-local/' src/CMakeLists.txt

%__mkdir_p %_target_platform/externals/nx_tzdb
%__cp %SOURCE3 %_target_platform/externals/nx_tzdb

%cmake \
-DCMAKE_C_COMPILER:STRING=clang \
-DCMAKE_CXX_COMPILER:STRING=clang++ \
-DCMAKE_RANLIB:PATH=%_bindir/llvm-ranlib \
-DCMAKE_AR:PATH=%_bindir/llvm-ar \
-DCMAKE_NM:PATH=%_bindir/llvm-nm \
-DCMAKE_EXE_LINKER_FLAGS:STRING="-fuse-ld=lld" \
-DENABLE_QT6:BOOL=TRUE \
-DENABLE_QT_TRANSLATION:BOOL=TRUE \
-DYUZU_USE_EXTERNAL_SDL2:BOOL=FALSE \
-DYUZU_USE_EXTERNAL_VULKAN_HEADERS:BOOL=FALSE \
-DYUZU_ENABLE_LTO:BOOL=TRUE \
-DYUZU_DOWNLOAD_TIME_ZONE_DATA:BOOL=TRUE \
-DSIRIT_USE_SYSTEM_SPIRV_HEADERS:BOOL=TRUE \
-DLLVM_DIR:PATH=%_libexecdir/llvm-%llvm_version/%_lib/cmake/llvm \
-GNinja \
-Wno-dev
%cmake_build

%install
%cmake_install

%files
%doc CONTRIBUTING.md README.md
%_bindir/%name
%_bindir/%name-cmd
%_bindir/%name-room
%_desktopdir/org.%{name}_emu.%name.desktop
%_datadir/metainfo/org.%{name}_emu.%name.metainfo.xml
%_datadir/mime/packages/org.%{name}_emu.%name.xml
%_iconsdir/hicolor/scalable/apps/org.%{name}_emu.%name.svg

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin