Группа :: Эмуляторы
Пакет: rpcs3
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
%define optflags_lto %nil
%define llvm_version 16.0
%define git_ver 15419
%define git_commit 6cd5a7eab960608cc38652c7d9f7900d52b122da
%define glslang_version sdk-1.3.224.1
%define asmjit_commit c59847629d3a19da4d10f0be4ac33b43fc4a100f
%define hidapi_commit 8b43a97a9330f8b0035439ce9e255e4be202deca
%define yaml_cpp_commit 0b67821f307e8c6bf0eba9b6d3250e3cf1441450
%define spirv_headers_version sdk-1.3.231.1
%define spirv_tools_version 2022.4
%define cubeb_commit 70b4e3db7822de4d534959885cda109d6edbee36
%define soundtouch_commit 83cfba67b6af80bb9bfafc0b324718c4841f2991
%define miniupnp_version miniupnpd_2_3_3
%define rtmidi_version 5.0.0
Name: rpcs3
Version: 0.0.29
Release: alt1.1
Summary: PS3 emulator/debugger
License: GPLv2
Group: Emulators
Url: https://%name.net/
Packager: Nazarov Denis <nenderus at altlinux.org>
ExclusiveArch: x86_64 aarch64
# https://github.com/RPCS3/%name/archive/v%version/%name-%version.tar.gz
Source0: %name-%version.tar
# https://github.com/KhronosGroup/glslang/archive/%glslang_version/glslang-%glslang_version.tar.gz
Source1: glslang-%glslang_version.tar
# https://github.com/RPCS3/asmjit/archive/%asmjit_commit/asmjit-%asmjit_commit.tar.gz
Source2: asmjit-%asmjit_commit.tar
# https://github.com/RPCS3/hidapi/archive/%hidapi_commit/hidapi-%hidapi_commit.tar.gz
Source3: hidapi-%hidapi_commit.tar
# https://github.com/RPCS3/yaml-cpp/archive/%yaml_cpp_commit/yaml-cpp-%yaml_cpp_commit.tar.gz
Source4: yaml-cpp-%yaml_cpp_commit.tar
# https://github.com/KhronosGroup/SPIRV-Headers/archive/%spirv_headers_version/SPIRV-Headers-%spirv_headers_version.tar.gz
Source5: SPIRV-Headers-%spirv_headers_version.tar
# https://github.com/KhronosGroup/SPIRV-Tools/archive/v%spirv_tools_version/SPIRV-Tools-%spirv_tools_version.tar.gz
Source6: SPIRV-Tools-%spirv_tools_version.tar
# https://github.com/mozilla/cubeb/archive/%cubeb_commit/cubeb-%cubeb_commit.tar.gz
Source7: cubeb-%cubeb_commit.tar
# https://github.com/RPCS3/soundtouch/archive/%soundtouch_commit/soundtouch-%soundtouch_commit.tar.gz
Source8: soundtouch-%soundtouch_commit.tar
# https://github.com/miniupnp/miniupnp/archive/%miniupnp_version/miniupnp-%miniupnp_version.tar.gz
Source9: miniupnp-%miniupnp_version.tar
# https://github.com/thestk/rtmidi/archive/refs/tags/%rtmidi_version/rtmidi-%rtmidi_version.tar.gz
Source10: rtmidi-%rtmidi_version.tar
Patch0: %name-alt-git.patch
BuildRequires: /proc
BuildRequires: clang%llvm_version
BuildRequires: cmake >= 3.16.9
BuildRequires: doxygen
BuildRequires: git-core
BuildRequires: graphviz
BuildRequires: mlir%llvm_version-tools
BuildRequires: ninja-build
BuildRequires: pkgconfig(FAudio)
BuildRequires: pkgconfig(Qt6) >= 6.4.0
BuildRequires: pkgconfig(Qt6Multimedia) >= 6.4.0
BuildRequires: pkgconfig(Qt6MultimediaWidgets) >= 6.4.0
BuildRequires: pkgconfig(Qt6Svg) >= 6.4.0
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(flatbuffers)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libevdev)
BuildRequires: pkgconfig(libffi)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxxhash)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(pugixml)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(udev)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-egl)
BuildRequires: pkgconfig(wayland-server)
BuildRequires: pkgconfig(wolfssl)
BuildRequires: libmlir%llvm_version-devel
BuildRequires: libpolly%llvm_version-devel
BuildRequires: lld%llvm_version
BuildRequires: llvm%llvm_version-devel
BuildRequires: ocaml-ctypes
BuildRequires: ocaml-findlib
BuildRequires: python3-module-yaml
BuildRequires: qt6-multimedia >= 6.4.0
BuildRequires: qt6-svg >= 6.4.0
BuildPreReq: pkgconfig(libswresample)
BuildPreReq: python3-module-Pygments
%description
The world's first free and open-source PlayStation 3 emulator/debugger, written in C++ for Windows and Linux.
%prep
%setup -b 1 -b 2 -b 3 -b 4 -b 5 -b 6 -b 7 -b 8 -b 9 -b 10
%patch0 -p1
%__mv -Tf ../glslang-%glslang_version 3rdparty/glslang/glslang
%__mv -Tf ../asmjit-%asmjit_commit 3rdparty/asmjit/asmjit
%__mv -Tf ../hidapi-%hidapi_commit 3rdparty/hidapi/hidapi
%__mv -Tf ../yaml-cpp-%yaml_cpp_commit 3rdparty/yaml-cpp/yaml-cpp
%__mv -Tf ../SPIRV-Headers-%spirv_headers_version 3rdparty/SPIRV/SPIRV-Headers
%__mv -Tf ../SPIRV-Tools-%spirv_tools_version 3rdparty/SPIRV/SPIRV-Tools
%__mv -Tf ../cubeb-%cubeb_commit 3rdparty/cubeb/cubeb
%__mv -Tf ../soundtouch-%soundtouch_commit 3rdparty/SoundTouch/soundtouch
%__mv -Tf ../miniupnp-%miniupnp_version 3rdparty/miniupnp/miniupnp
%__mv -Tf ../rtmidi-%rtmidi_version 3rdparty/rtmidi/rtmidi
#Generate Version Strings
GIT_VERSION=$(echo %git_ver)
GIT_COMMIT=$(echo %git_commit)
echo "// This is a generated file.
#define RPCS3_GIT_VERSION \"$GIT_VERSION-${GIT_COMMIT:0:8}\"
#define RPCS3_GIT_BRANCH \"master\"
#define RPCS3_GIT_FULL_BRANCH \"RPCS3/rpcs3/master\"
// If you don't want this file to update/recompile, change to 1.
#define RPCS3_GIT_VERSION_NO_UPDATE 1
" > %name/git-version.h
%build
export ALTWRAP_LLVM_VERSION=%llvm_version
%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" \
-DUSE_NATIVE_INSTRUCTIONS:BOOL=FALSE \
-DUSE_SYSTEM_FFMPEG:BOOL=TRUE \
-DUSE_SYSTEM_LIBPNG:BOOL=TRUE \
-DUSE_SYSTEM_CURL:BOOL=TRUE \
-DUSE_SYSTEM_LIBUSB:BOOL=TRUE \
-DUSE_SYSTEM_FLATBUFFERS:BOOL=TRUE \
-DUSE_SYSTEM_PUGIXML:BOOL=TRUE \
-DUSE_SYSTEM_XXHASH:BOOL=TRUE \
-DUSE_SYSTEM_WOLFSSL:BOOL=TRUE \
-DUSE_SYSTEM_FAUDIO:BOOL=TRUE \
-DLLVM_DIR:PATH=%_libexecdir/llvm-%llvm_version/%_lib/cmake/llvm \
-GNinja \
-Wno-dev
%cmake_build
%install
%cmake_install
%__rm -rf %buildroot%_datadir/%name/{git,test}
%files
%doc LICENSE README.md
%_bindir/%name
%_desktopdir/%name.desktop
%_liconsdir/%name.png
%_iconsdir/hicolor/scalable/apps/%name.svg
%_datadir/%name
%_datadir/metainfo/%name.metainfo.xml
%changelog
…
Полный changelog можно просмотреть здесь
%define llvm_version 16.0
%define git_ver 15419
%define git_commit 6cd5a7eab960608cc38652c7d9f7900d52b122da
%define glslang_version sdk-1.3.224.1
%define asmjit_commit c59847629d3a19da4d10f0be4ac33b43fc4a100f
%define hidapi_commit 8b43a97a9330f8b0035439ce9e255e4be202deca
%define yaml_cpp_commit 0b67821f307e8c6bf0eba9b6d3250e3cf1441450
%define spirv_headers_version sdk-1.3.231.1
%define spirv_tools_version 2022.4
%define cubeb_commit 70b4e3db7822de4d534959885cda109d6edbee36
%define soundtouch_commit 83cfba67b6af80bb9bfafc0b324718c4841f2991
%define miniupnp_version miniupnpd_2_3_3
%define rtmidi_version 5.0.0
Name: rpcs3
Version: 0.0.29
Release: alt1.1
Summary: PS3 emulator/debugger
License: GPLv2
Group: Emulators
Url: https://%name.net/
Packager: Nazarov Denis <nenderus at altlinux.org>
ExclusiveArch: x86_64 aarch64
# https://github.com/RPCS3/%name/archive/v%version/%name-%version.tar.gz
Source0: %name-%version.tar
# https://github.com/KhronosGroup/glslang/archive/%glslang_version/glslang-%glslang_version.tar.gz
Source1: glslang-%glslang_version.tar
# https://github.com/RPCS3/asmjit/archive/%asmjit_commit/asmjit-%asmjit_commit.tar.gz
Source2: asmjit-%asmjit_commit.tar
# https://github.com/RPCS3/hidapi/archive/%hidapi_commit/hidapi-%hidapi_commit.tar.gz
Source3: hidapi-%hidapi_commit.tar
# https://github.com/RPCS3/yaml-cpp/archive/%yaml_cpp_commit/yaml-cpp-%yaml_cpp_commit.tar.gz
Source4: yaml-cpp-%yaml_cpp_commit.tar
# https://github.com/KhronosGroup/SPIRV-Headers/archive/%spirv_headers_version/SPIRV-Headers-%spirv_headers_version.tar.gz
Source5: SPIRV-Headers-%spirv_headers_version.tar
# https://github.com/KhronosGroup/SPIRV-Tools/archive/v%spirv_tools_version/SPIRV-Tools-%spirv_tools_version.tar.gz
Source6: SPIRV-Tools-%spirv_tools_version.tar
# https://github.com/mozilla/cubeb/archive/%cubeb_commit/cubeb-%cubeb_commit.tar.gz
Source7: cubeb-%cubeb_commit.tar
# https://github.com/RPCS3/soundtouch/archive/%soundtouch_commit/soundtouch-%soundtouch_commit.tar.gz
Source8: soundtouch-%soundtouch_commit.tar
# https://github.com/miniupnp/miniupnp/archive/%miniupnp_version/miniupnp-%miniupnp_version.tar.gz
Source9: miniupnp-%miniupnp_version.tar
# https://github.com/thestk/rtmidi/archive/refs/tags/%rtmidi_version/rtmidi-%rtmidi_version.tar.gz
Source10: rtmidi-%rtmidi_version.tar
Patch0: %name-alt-git.patch
BuildRequires: /proc
BuildRequires: clang%llvm_version
BuildRequires: cmake >= 3.16.9
BuildRequires: doxygen
BuildRequires: git-core
BuildRequires: graphviz
BuildRequires: mlir%llvm_version-tools
BuildRequires: ninja-build
BuildRequires: pkgconfig(FAudio)
BuildRequires: pkgconfig(Qt6) >= 6.4.0
BuildRequires: pkgconfig(Qt6Multimedia) >= 6.4.0
BuildRequires: pkgconfig(Qt6MultimediaWidgets) >= 6.4.0
BuildRequires: pkgconfig(Qt6Svg) >= 6.4.0
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(flatbuffers)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libevdev)
BuildRequires: pkgconfig(libffi)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxxhash)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(pugixml)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(udev)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-egl)
BuildRequires: pkgconfig(wayland-server)
BuildRequires: pkgconfig(wolfssl)
BuildRequires: libmlir%llvm_version-devel
BuildRequires: libpolly%llvm_version-devel
BuildRequires: lld%llvm_version
BuildRequires: llvm%llvm_version-devel
BuildRequires: ocaml-ctypes
BuildRequires: ocaml-findlib
BuildRequires: python3-module-yaml
BuildRequires: qt6-multimedia >= 6.4.0
BuildRequires: qt6-svg >= 6.4.0
BuildPreReq: pkgconfig(libswresample)
BuildPreReq: python3-module-Pygments
%description
The world's first free and open-source PlayStation 3 emulator/debugger, written in C++ for Windows and Linux.
%prep
%setup -b 1 -b 2 -b 3 -b 4 -b 5 -b 6 -b 7 -b 8 -b 9 -b 10
%patch0 -p1
%__mv -Tf ../glslang-%glslang_version 3rdparty/glslang/glslang
%__mv -Tf ../asmjit-%asmjit_commit 3rdparty/asmjit/asmjit
%__mv -Tf ../hidapi-%hidapi_commit 3rdparty/hidapi/hidapi
%__mv -Tf ../yaml-cpp-%yaml_cpp_commit 3rdparty/yaml-cpp/yaml-cpp
%__mv -Tf ../SPIRV-Headers-%spirv_headers_version 3rdparty/SPIRV/SPIRV-Headers
%__mv -Tf ../SPIRV-Tools-%spirv_tools_version 3rdparty/SPIRV/SPIRV-Tools
%__mv -Tf ../cubeb-%cubeb_commit 3rdparty/cubeb/cubeb
%__mv -Tf ../soundtouch-%soundtouch_commit 3rdparty/SoundTouch/soundtouch
%__mv -Tf ../miniupnp-%miniupnp_version 3rdparty/miniupnp/miniupnp
%__mv -Tf ../rtmidi-%rtmidi_version 3rdparty/rtmidi/rtmidi
#Generate Version Strings
GIT_VERSION=$(echo %git_ver)
GIT_COMMIT=$(echo %git_commit)
echo "// This is a generated file.
#define RPCS3_GIT_VERSION \"$GIT_VERSION-${GIT_COMMIT:0:8}\"
#define RPCS3_GIT_BRANCH \"master\"
#define RPCS3_GIT_FULL_BRANCH \"RPCS3/rpcs3/master\"
// If you don't want this file to update/recompile, change to 1.
#define RPCS3_GIT_VERSION_NO_UPDATE 1
" > %name/git-version.h
%build
export ALTWRAP_LLVM_VERSION=%llvm_version
%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" \
-DUSE_NATIVE_INSTRUCTIONS:BOOL=FALSE \
-DUSE_SYSTEM_FFMPEG:BOOL=TRUE \
-DUSE_SYSTEM_LIBPNG:BOOL=TRUE \
-DUSE_SYSTEM_CURL:BOOL=TRUE \
-DUSE_SYSTEM_LIBUSB:BOOL=TRUE \
-DUSE_SYSTEM_FLATBUFFERS:BOOL=TRUE \
-DUSE_SYSTEM_PUGIXML:BOOL=TRUE \
-DUSE_SYSTEM_XXHASH:BOOL=TRUE \
-DUSE_SYSTEM_WOLFSSL:BOOL=TRUE \
-DUSE_SYSTEM_FAUDIO:BOOL=TRUE \
-DLLVM_DIR:PATH=%_libexecdir/llvm-%llvm_version/%_lib/cmake/llvm \
-GNinja \
-Wno-dev
%cmake_build
%install
%cmake_install
%__rm -rf %buildroot%_datadir/%name/{git,test}
%files
%doc LICENSE README.md
%_bindir/%name
%_desktopdir/%name.desktop
%_liconsdir/%name.png
%_iconsdir/hicolor/scalable/apps/%name.svg
%_datadir/%name
%_datadir/metainfo/%name.metainfo.xml
%changelog
…
Полный changelog можно просмотреть здесь