Name: rpcs3 Version: 0.0.37 Release: %autorelease Summary: PlayStation 3 emulator and debugger License: GNU GPL v2 URL: https://github.com/RPCS3/rpcs3 Source0: https://github.com/RPCS3/rpcs3/archive/refs/tags/v%{version}.tar.gz Source1: https://github.com/ip7z/7zip/archive/refs/tags/24.09.tar.gz Source2: https://github.com/FNA-XNA/FAudio/archive/refs/tags/25.05.tar.gz Source3: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/refs/tags/v3.3.0.tar.gz Source4: https://github.com/kcat/openal-soft/archive/refs/tags/1.24.3.tar.gz Source5: https://github.com/RPCS3/soundtouch/archive/3982730833b6daefe77dcfb32b5c282851640c17.tar.gz Source6: https://github.com/asmjit/asmjit/archive/416f7356967c1f66784dc1580fe157f9406d8bff.tar.gz Source7: https://github.com/mozilla/cubeb/archive/70b4e3db7822de4d534959885cda109d6edbee36.tar.gz Source8: https://github.com/curl/curl/archive/refs/tags/curl-8_14_0.tar.gz Source9: https://github.com/Vestrel/discord-rpc/archive/3dc2c326cb4dc5815c6069970c13154898f58d48.tar.gz Source10: https://github.com/RPCS3/ffmpeg-core/archive/refs/tags/ec6367d.tar.gz Source11: https://github.com/google/flatbuffers/archive/refs/tags/v24.3.25.tar.gz Source12: https://github.com/xioTechnologies/Fusion/archive/refs/tags/v1.2.8.tar.gz Source13: https://github.com/KhronosGroup/glslang/archive/refs/tags/15.3.0.tar.gz Source14: https://github.com/RPCS3/hidapi/archive/f42423643ec9011c98cccc0bb790722bbbd3f30b.tar.gz Source15: https://github.com/pnggroup/libpng/archive/refs/tags/v1.6.48.tar.gz Source16: https://github.com/libsdl-org/SDL/archive/refs/tags/release-3.2.14.tar.gz Source17: https://github.com/libusb/libusb/archive/refs/tags/v1.0.28.tar.gz Source18: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-19.1.7.tar.gz Source19: https://github.com/miniupnp/miniupnp/archive/refs/tags/miniupnpd_2_3_9.tar.gz Source20: https://github.com/Megamouse/opencv_minimal/archive/f76628fb5b25746fcb75a7ce85be0d8c6439fc57.tar.gz Source21: https://github.com/zeux/pugixml/archive/refs/tags/v1.15.tar.gz Source22: https://github.com/thestk/rtmidi/archive/refs/tags/6.0.0.tar.gz Source23: https://github.com/nothings/stb/archive/013ac3beddff3dbffafd5177e7972067cd2b5083.tar.gz Source24: https://github.com/wolfSSL/wolfssl/archive/refs/tags/v5.8.0-stable.tar.gz Source25: https://github.com/RPCS3/yaml-cpp/archive/456c68f452da09d8ca84b375faa2b1397713eaba.tar.gz Source26: https://github.com/madler/zlib/archive/refs/tags/v1.3.1.tar.gz Source27: https://github.com/facebook/zstd/archive/refs/tags/v1.5.7.tar.gz # Core build tools BuildRequires: cmake BuildRequires: git BuildRequires: ninja-build BuildRequires: pkgconfig BuildRequires: gcc BuildRequires: gcc-c++ # System FFmpeg (shared) replaces RPCS3’s “download prebuilt” logic BuildRequires: ffmpeg-free-devel # Qt6 for the GUI BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qttools-devel # X11 / Windowing BuildRequires: libX11-devel BuildRequires: libXrandr-devel BuildRequires: glew-devel # Vulkan BuildRequires: vulkan-devel # USB / HID / Controller support BuildRequires: libudev-devel BuildRequires: libusb1-devel # Audio backends # - PulseAudio BuildRequires: pulseaudio-libs-devel # - OpenAL BuildRequires: openal-soft-devel # Optional: Wayland client development (skip if you only need EGL/GL backend) BuildRequires: wayland-devel BuildRequires: wayland-protocols-devel BuildRequires: egl-wayland-devel BuildRequires: libwayland-egl BuildRequires: libcurl-devel BuildRequires: opencv-devel BuildRequires: libzstd-devel BuildRequires: git-all BuildRequires: rtmidi-devel BuildRequires: alsa-lib-devel BuildRequires: cmake BuildRequires: ninja-build BuildRequires: glew BuildRequires: glew-devel BuildRequires: libatomic BuildRequires: libevdev-devel BuildRequires: libudev-devel BuildRequires: openal-soft-devel # BuildRequires: openal-devel BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtbase-private-devel BuildRequires: vulkan-devel BuildRequires: pipewire-jack-audio-connection-kit-devel # BuildRequires: jack-audio-connection-kit-devel BuildRequires: qt6-qtmultimedia-devel BuildRequires: qt6-qtsvg-devel BuildRequires: llvm-devel BuildRequires: SDL3-devel BuildRequires: doxygen %description PlayStation 3 emulator and debugger %prep %autosetup tar -xzf %{SOURCE1} --strip-components=1 -C 3rdparty/7zip/7zip tar -xzf %{SOURCE2} --strip-components=1 -C 3rdparty/FAudio tar -xzf %{SOURCE3} --strip-components=1 -C 3rdparty/GPUOpen/VulkanMemoryAllocator tar -xzf %{SOURCE4} --strip-components=1 -C 3rdparty/OpenAL/openal-soft tar -xzf %{SOURCE5} --strip-components=1 -C 3rdparty/SoundTouch/soundtouch/ tar -xzf %{SOURCE6} --strip-components=1 -C 3rdparty/asmjit/asmjit/ tar -xzf %{SOURCE7} --strip-components=1 -C 3rdparty/cubeb/cubeb tar -xzf %{SOURCE8} --strip-components=1 -C 3rdparty/curl/curl tar -xzf %{SOURCE9} --strip-components=1 -C 3rdparty/discord-rpc/discord-rpc tar -xzf %{SOURCE10} --strip-components=1 -C 3rdparty/ffmpeg tar -xzf %{SOURCE11} --strip-components=1 -C 3rdparty/flatbuffers/ tar -xzf %{SOURCE12} --strip-components=1 -C 3rdparty/fusion/fusion tar -xzf %{SOURCE13} --strip-components=1 -C 3rdparty/glslang/glslang tar -xzf %{SOURCE14} --strip-components=1 -C 3rdparty/hidapi/hidapi tar -xzf %{SOURCE15} --strip-components=1 -C 3rdparty/libpng/libpng tar -xzf %{SOURCE16} --strip-components=1 -C 3rdparty/libsdl-org/SDL tar -xzf %{SOURCE17} --strip-components=1 -C 3rdparty/libusb/libusb tar -xzf %{SOURCE18} --strip-components=1 -C 3rdparty/llvm/llvm tar -xzf %{SOURCE19} --strip-components=1 -C 3rdparty/miniupnp/miniupnp tar -xzf %{SOURCE20} --strip-components=1 -C 3rdparty/opencv/opencv tar -xzf %{SOURCE21} --strip-components=1 -C 3rdparty/pugixml tar -xzf %{SOURCE22} --strip-components=1 -C 3rdparty/rtmidi tar -xzf %{SOURCE23} --strip-components=1 -C 3rdparty/stblib/stb tar -xzf %{SOURCE24} --strip-components=1 -C 3rdparty/wolfssl/wolfssl tar -xzf %{SOURCE25} --strip-components=1 -C 3rdparty/yaml-cpp/yaml-cpp tar -xzf %{SOURCE26} --strip-components=1 -C 3rdparty/zlib/zlib tar -xzf %{SOURCE27} --strip-components=1 -C 3rdparty/zstd/zstd # find 3rdparty/rtmidi -type f -name 'CMakeLists.txt' -exec sed -i '/add_custom_target(uninstall/d' {} + # find 3rdparty/rtmidi -type f -name CMakeLists.txt -exec sed -i '/add_custom_target(uninstall/d' {} + # find 3rdparty -type f -name CMakeLists.txt -exec sed -i '/add_custom_target(uninstall/d' {} + sed -i "/^set(RTMIDI_TARGETNAME_UNINSTALL \"uninstall\" CACHE STRING \"Name of 'uninstall' build target\")\$/d" \ 3rdparty/rtmidi/CMakeLists.txt # Silence old-style-cast warnings in just sse2neon.h sed -i '1i#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored "-Wold-style-cast"' \ rpcs3/Emu/CPU/sse2neon.h echo '#pragma GCC diagnostic pop' \ >> rpcs3/Emu/CPU/sse2neon.h %build export CXXFLAGS="$CXXFLAGS -Wno-error=old-style-cast -Wno-old-style-cast" %if %{with clang} export CC=clang export CXX=clang++ export LINKER=ld.lld %else export CC=gcc export CXX=g++ export LINKER=gold %endif export LINKER_FLAG="-fuse-ld=${LINKER}" cmake -B build \ -Wno-dev \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DLLVM_TARGETS_TO_BUILD=AArch64 \ -DCMAKE_EXE_LINKER_FLAGS="${LINKER_FLAG}" \ -DCMAKE_MODULE_LINKER_FLAGS="${LINKER_FLAG}" \ -DCMAKE_SHARED_LINKER_FLAGS="${LINKER_FLAG}" \ -DUSE_PRECOMPILED_HEADERS=OFF \ -DBUILD_RPCS3_TESTS=OFF \ -DRUN_RPCS3_TESTS=OFF \ -DUSE_SDL=ON \ -DUSE_SYSTEM_SDL=ON \ -DUSE_SYSTEM_FFMPEG=ON \ -DUSE_NATIVE_INSTRUCTIONS=OFF \ -DUSE_SYSTEM_CURL=ON \ -DUSE_SYSTEM_ZSTD=ON \ -DUSE_SYSTEM_RTMIDI=ON \ -DUSE_DISCORD_RPC=ON \ -DUSE_SYSTEM_OPENCV=ON \ -DCURL_USE_SYSTEM=ON \ -DDISABLE_LTO=TRUE \ -DUSE_SYSTEM_OPENCV=ON \ -DOpenGL_GL_PREFERENCE=LEGACY \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DCMAKE_EXE_LINKER_FLAGS="-L/usr/lib64/pipewire-0.3/jack" \ -DSTATIC_LINK_LLVM=ON \ -G Ninja cd build ninja %install cd build DESTDIR=%{buildroot} ninja install %files %license LICENSE %doc README.md %define debug_package %{nil} %{_bindir}/rpcs3 %{_datadir}/applications/rpcs3.desktop %{_datadir}/metainfo/rpcs3.metainfo.xml %{_datadir}/icons/hicolor/48x48/apps/rpcs3.png %{_datadir}/icons/hicolor/scalable/apps/rpcs3.svg %{_datadir}/rpcs3 %changelog * Sun Jun 08 2025 Lachlan Marie - 0.0.37-1 - Initial RPM packaging of rpcs3