commit: 462e5718db4dde8bb3f0fa3641428bfa44396201
Author: Takuya Wakazono <pastalian46 <AT> gmail <DOT> com>
AuthorDate: Sun May 4 15:11:58 2025 +0000
Commit: Takuya Wakazono <pastalian46 <AT> gmail <DOT> com>
CommitDate: Sun May 4 15:11:58 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=462e5718
games-emulation/rpcs3: add 0.0.34
Signed-off-by: Takuya Wakazono <pastalian46 <AT> gmail.com>
games-emulation/rpcs3/Manifest | 8 +
.../rpcs3/files/rpcs3-0.0.34-system-openal.patch | 23 +++
.../rpcs3/files/rpcs3-0.0.34-system-stb.patch | 21 +++
.../rpcs3/files/rpcs3-0.0.34-system-zstd.patch | 21 +++
games-emulation/rpcs3/metadata.xml | 3 +
games-emulation/rpcs3/rpcs3-0.0.34.ebuild | 184 +++++++++++++++++++++
6 files changed, 260 insertions(+)
diff --git a/games-emulation/rpcs3/Manifest b/games-emulation/rpcs3/Manifest
new file mode 100644
index 000000000..447fc554f
--- /dev/null
+++ b/games-emulation/rpcs3/Manifest
@@ -0,0 +1,8 @@
+DIST rpcs3-0.0.34.tar.gz 7834256 BLAKE2B
62bfc4751e4f77bc20899222520a5b902b7bd263f6a0265e35189c85a8e4ce068dbe38c8b4cd7c61634b69f81c7aa2f7c2d9f894134149e4a9211841ab822102
SHA512
4cbe7d62fe86e51355d63a09ce64ec768ad236aebf4375dd410549339a5f244fb2cc30c89821b0e6f001bb31646432abd06a2b9947b8d589d5c5b73de24e6e9d
+DIST rpcs3-asmjit-416f7356967c1f66784dc1580fe157f9406d8bff.tar.gz 1152383
BLAKE2B
17b054083ce178255f19026d175986225f6f803a21e0cef4ce9a557ac50057578d3ae76d3b179fe25d0febd5e05d5d5feb28f9761045a8e41497b92a966196ec
SHA512
2be4de27b2ed2212cf7b6ef9d40afac5c00f7a71df4e60208ea57258c01e56413cee439f84490d605f44a835522d1c1a55de898feccdd4429e907a9f82edd7cb
+DIST rpcs3-glslang-36d08c0d940cf307a23928299ef52c7970d8cee6.tar.gz 3769785
BLAKE2B
923bfada8484a3bb91dd92a242d7096017b77fd399a90052af121658221069215e277d51fb4b9b95821b9272e44618f91883c2dc49bfb671c52a941d54aec182
SHA512
184baa0bc22d5e79bf8424692b5c8bb51676ca20819551cf406a4fd898dd1ad5ca7296e26ce7b99878e627dcafc4cd435933dd939c91753c5050022052e1dbe5
+DIST rpcs3-miniupnp-7f189988a0decca0ab7da89000051ab91751f70d.tar.gz 462956
BLAKE2B
da35be2f89c4aa19e4d956f2929184653c9dcafdd6f7fa8b463e23bb6b449bb4ad17ea526ea11eb1dae460ff26c4c45e219de6e93afaeb9fe9042e91ac7a64eb
SHA512
7bc34491912099b26873f7942077156e267cf3860082299c6ebf42ca0d7cb8a0d8330b874fd37f00907b865bb08321e4d6d5d1b5bba581140d9dd0f07f9f1599
+DIST rpcs3-rtmidi-1e5b49925aa60065db52de44c366d446a902547b.tar.gz 515635
BLAKE2B
4a4809bd2c1f03b0ecda9a2583c84fb7f0a040f362bcd96f2639b062b8a5dbdb4da214f1f14d56664e59f0c964413db8f6d1722ece59c9a36629fb50d2b56c92
SHA512
c5f221cecbcee5085a75264b9c5f4eb4f8096d8f7425908678a3429f97fd4177d4f1781c5ef9f46093353878eabffc76b2f9af049ea4ba6dee05f1c7999f1b9f
+DIST rpcs3-soundtouch-394e1f58b23dc80599214d2e9b6a5e0dfd0bbe07.tar.gz 606942
BLAKE2B
208041ba68fc7b26d3fd800e1a26c79d8f011142fff1f6ea519d71972762299816eb10b3204a8bd4fe872bb19fe5639e5782db4e40333cb2073c7fb32153e6e7
SHA512
ef4a3300b6e80e4f540c3d1444b2604e6cb9bb72bd9648059706e1ad1aba015fdf9babecd9986910a2069ba44947e72e965ccc793f98598b6d6c140181585dfe
+DIST rpcs3-wolfssl-00e42151ca061463ba6a95adb2290f678cbca472.tar.gz 23602428
BLAKE2B
3e8dfe67c9401a32ae9cdea9f03ef929e6378e55af4edb5b26c4e8bd91e21ff91d5cae73bf858b4dfcc292ca0ac4ba667baf373e9f5d093e26ea6287dd677bee
SHA512
79023c31489fa8ce3772e8042c47360be8ad29e29b7e7ae2dd397907e11acd64536d5446f52e9957194d054f959069521ffdc90faa820d09ba406a4ad8ae1440
+DIST rpcs3-yaml-cpp-456c68f452da09d8ca84b375faa2b1397713eaba.tar.gz 1019142
BLAKE2B
8c7b4e1c788a07c1092be813555b1774a713693dd995183671d60b1896f96e105631447cb8c69bbcb13c380388b632d38a2c59be19903bc259ae6b57a181612a
SHA512
0d06856bacb6c3cb987299c650baffcb2647a4b9a53394a7ce5c75301b527574d41cb0dfe9bf2e997e04588786d5aa7232437472a2e5fec422e8aa56aba0ea14
diff --git a/games-emulation/rpcs3/files/rpcs3-0.0.34-system-openal.patch
b/games-emulation/rpcs3/files/rpcs3-0.0.34-system-openal.patch
new file mode 100644
index 000000000..880721d23
--- /dev/null
+++ b/games-emulation/rpcs3/files/rpcs3-0.0.34-system-openal.patch
@@ -0,0 +1,23 @@
+Unbundle openal.
+--- a/rpcs3/Emu/Cell/Modules/cellMic.h
++++ b/rpcs3/Emu/Cell/Modules/cellMic.h
+@@ -3,7 +3,7 @@
+ #include "Utilities/Thread.h"
+ #include "Emu/Cell/timers.hpp"
+
+-#include "3rdparty/OpenAL/openal-soft/include/AL/alext.h"
++#include <AL/alext.h>
+
+ // Error Codes
+ enum CellMicInError : u32
+--- a/rpcs3/rpcs3qt/microphone_creator.cpp
++++ b/rpcs3/rpcs3qt/microphone_creator.cpp
+@@ -4,7 +4,7 @@
+ #include "Utilities/StrFmt.h"
+ #include "Utilities/StrUtil.h"
+
+-#include "3rdparty/OpenAL/openal-soft/include/AL/alext.h"
++#include <AL/alext.h>
+
+ LOG_CHANNEL(cfg_log, "CFG");
+
diff --git a/games-emulation/rpcs3/files/rpcs3-0.0.34-system-stb.patch
b/games-emulation/rpcs3/files/rpcs3-0.0.34-system-stb.patch
new file mode 100644
index 000000000..062e215da
--- /dev/null
+++ b/games-emulation/rpcs3/files/rpcs3-0.0.34-system-stb.patch
@@ -0,0 +1,21 @@
+Unbundle stb.
+--- a/3rdparty/CMakeLists.txt
++++ b/3rdparty/CMakeLists.txt
+@@ -129,7 +130,8 @@ endif()
+
+
+ # stblib
+-add_subdirectory(stblib)
++pkg_check_modules(stb REQUIRED IMPORTED_TARGET GLOBAL stb)
++add_library(3rdparty::stblib ALIAS PkgConfig::stb)
+
+ # DiscordRPC
+ add_subdirectory(discord-rpc)
+@@ -359,7 +360,6 @@ add_library(3rdparty::xxhash ALIAS xxhash)
+ add_library(3rdparty::hidapi ALIAS 3rdparty_hidapi)
+ add_library(3rdparty::libpng ALIAS ${LIBPNG_TARGET})
+ add_library(3rdparty::opengl ALIAS 3rdparty_opengl)
+-add_library(3rdparty::stblib ALIAS 3rdparty_stblib)
+ add_library(3rdparty::discordRPC ALIAS 3rdparty_discordRPC)
+ add_library(3rdparty::faudio ALIAS ${FAUDIO_TARGET})
+ add_library(3rdparty::libevdev ALIAS ${LIBEVDEV_TARGET})
diff --git a/games-emulation/rpcs3/files/rpcs3-0.0.34-system-zstd.patch
b/games-emulation/rpcs3/files/rpcs3-0.0.34-system-zstd.patch
new file mode 100644
index 000000000..0b8464e72
--- /dev/null
+++ b/games-emulation/rpcs3/files/rpcs3-0.0.34-system-zstd.patch
@@ -0,0 +1,21 @@
+Unbundle zstd.
+--- a/3rdparty/CMakeLists.txt
++++ b/3rdparty/CMakeLists.txt
+@@ -20,7 +20,8 @@ add_library(3rdparty_dummy_lib INTERFACE)
+ add_subdirectory(zlib EXCLUDE_FROM_ALL)
+
+ # ZSTD
+-add_subdirectory(zstd EXCLUDE_FROM_ALL)
++pkg_check_modules(zstd REQUIRED IMPORTED_TARGET GLOBAL libzstd)
++add_library(3rdparty::zstd ALIAS PkgConfig::zstd)
+
+ # 7zip sdk
+ add_subdirectory(7zip EXCLUDE_FROM_ALL)
+@@ -350,7 +351,6 @@ else()
+ add_library(3rdparty::libusb ALIAS usb-1.0-static)
+ endif()
+ add_library(3rdparty::zlib ALIAS 3rdparty_zlib)
+-add_library(3rdparty::zstd ALIAS 3rdparty_zstd)
+ add_library(3rdparty::7zip ALIAS 3rdparty_7zip)
+ add_library(3rdparty::flatbuffers ALIAS 3rdparty_flatbuffers)
+ add_library(3rdparty::pugixml ALIAS pugixml)
diff --git a/games-emulation/rpcs3/metadata.xml
b/games-emulation/rpcs3/metadata.xml
index 65cadeec8..b4175b456 100644
--- a/games-emulation/rpcs3/metadata.xml
+++ b/games-emulation/rpcs3/metadata.xml
@@ -12,4 +12,7 @@
<flag name="opencv">Enable PS Move support</flag>
<flag name="vulkan">Build vulkan renderer</flag>
</use>
+<upstream>
+ <remote-id type="github">RPCS3/rpcs3</remote-id>
+</upstream>
</pkgmetadata>
diff --git a/games-emulation/rpcs3/rpcs3-0.0.34.ebuild
b/games-emulation/rpcs3/rpcs3-0.0.34.ebuild
new file mode 100644
index 000000000..cc6580324
--- /dev/null
+++ b/games-emulation/rpcs3/rpcs3-0.0.34.ebuild
@@ -0,0 +1,184 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic xdg
+
+ASMJIT_COMMIT="416f7356967c1f66784dc1580fe157f9406d8bff"
+GLSLANG_COMMIT="36d08c0d940cf307a23928299ef52c7970d8cee6"
+MINIUPNP_COMMIT="7f189988a0decca0ab7da89000051ab91751f70d"
+RTMIDI_COMMIT="1e5b49925aa60065db52de44c366d446a902547b"
+WOLFSSL_COMMIT="00e42151ca061463ba6a95adb2290f678cbca472"
+SOUNDTOUCH_COMMIT="394e1f58b23dc80599214d2e9b6a5e0dfd0bbe07"
+YAMLCPP_COMMIT="456c68f452da09d8ca84b375faa2b1397713eaba"
+
+DESCRIPTION="PS3 emulator/debugger"
+HOMEPAGE="https://rpcs3.net/"
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/RPCS3/rpcs3"
+ EGIT_SUBMODULES=(
+ 'asmjit' '3rdparty/glslang' '3rdparty/miniupnp/miniupnp'
'3rdparty/rtmidi/rtmidi' '3rdparty/wolfssl'
+ '3rdparty/SoundTouch/soundtouch' '3rdparty/zstd/zstd'
'3rdparty/stblib/stb' '3rdparty/OpenAL/openal-soft'
+ '3rdparty/fusion/fusion'
+ )
+ # Delete sources when ensuring yaml-cpp compiled with fexceptions
+ EGIT_SUBMODULES+=( '3rdparty/yaml-cpp' )
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/RPCS3/rpcs3/archive/v${PV}.tar.gz ->
${P}.tar.gz
+
https://github.com/asmjit/asmjit/archive/${ASMJIT_COMMIT}.tar.gz ->
${PN}-asmjit-${ASMJIT_COMMIT}.tar.gz
+
https://github.com/KhronosGroup/glslang/archive/${GLSLANG_COMMIT}.tar.gz ->
${PN}-glslang-${GLSLANG_COMMIT}.tar.gz
+
https://github.com/miniupnp/miniupnp/archive/${MINIUPNP_COMMIT}.tar.gz ->
${PN}-miniupnp-${MINIUPNP_COMMIT}.tar.gz
+
https://github.com/thestk/rtmidi/archive/${RTMIDI_COMMIT}.tar.gz ->
${PN}-rtmidi-${RTMIDI_COMMIT}.tar.gz
+
https://github.com/wolfSSL/wolfssl/archive/${WOLFSSL_COMMIT}.tar.gz ->
${PN}-wolfssl-${WOLFSSL_COMMIT}.tar.gz
+
https://github.com/RPCS3/soundtouch/archive/${SOUNDTOUCH_COMMIT}.tar.gz ->
${PN}-soundtouch-${SOUNDTOUCH_COMMIT}.tar.gz
+
https://github.com/RPCS3/yaml-cpp/archive/${YAMLCPP_COMMIT}.tar.gz ->
${PN}-yaml-cpp-${YAMLCPP_COMMIT}.tar.gz
+ "
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="discord faudio +llvm opencv wayland"
+
+COMMON_DEPEND="
+ app-arch/zstd
+ dev-libs/flatbuffers
+ dev-libs/hidapi
+ dev-libs/libevdev
+ dev-libs/pugixml
+ dev-libs/xxhash
+ dev-qt/qtbase:6[concurrent,dbus,gui,widgets]
+ dev-qt/qtmultimedia:6
+ dev-qt/qtsvg:6
+ media-libs/alsa-lib
+ media-libs/cubeb
+ media-libs/glew
+ media-libs/libglvnd
+ media-libs/libpng:=
+ media-libs/openal
+ media-libs/vulkan-loader[wayland?]
+ media-video/ffmpeg:=
+ net-misc/curl
+ llvm-core/llvm:=
+ sys-libs/zlib
+ virtual/libusb:1
+ x11-libs/libX11
+ faudio? ( app-emulation/faudio )
+ opencv? ( media-libs/opencv )
+ wayland? ( dev-libs/wayland )
+"
+RDEPEND="${COMMON_DEPEND}"
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-libs/stb
+"
+
+QA_PREBUILT="usr/share/rpcs3/test/.*"
+QA_WX_LOAD="usr/share/rpcs3/test/*"
+
+PATCHES=(
+ "${FILESDIR}/${P}-system-openal.patch"
+ "${FILESDIR}/${P}-system-stb.patch"
+ "${FILESDIR}/${P}-system-zstd.patch"
+)
+
+src_prepare() {
+ if [[ ${PV} != "9999" ]]; then
+ rmdir "${S}/3rdparty/asmjit/asmjit" || die
+ mv "${WORKDIR}/asmjit-${ASMJIT_COMMIT}"
"${S}/3rdparty/asmjit/asmjit" || die
+
+ rmdir "${S}/3rdparty/glslang/glslang" || die
+ mv "${WORKDIR}/glslang-${GLSLANG_COMMIT}"
"${S}/3rdparty/glslang/glslang" || die
+
+ rmdir "${S}/3rdparty/miniupnp/miniupnp" || die
+ mv "${WORKDIR}/miniupnp-${MINIUPNP_COMMIT}"
"${S}/3rdparty/miniupnp/miniupnp" || die
+
+ rmdir "${S}/3rdparty/rtmidi/rtmidi" || die
+ mv "${WORKDIR}/rtmidi-${RTMIDI_COMMIT}"
"${S}/3rdparty/rtmidi/rtmidi" || die
+
+ rmdir "${S}/3rdparty/wolfssl/wolfssl" || die
+ mv "${WORKDIR}/wolfssl-${WOLFSSL_COMMIT}"
"${S}/3rdparty/wolfssl/wolfssl" || die
+
+ rmdir "${S}/3rdparty/SoundTouch/soundtouch" || die
+ mv "${WORKDIR}/soundtouch-${SOUNDTOUCH_COMMIT}"
"${S}/3rdparty/SoundTouch/soundtouch" || die
+
+ rmdir "${S}/3rdparty/yaml-cpp/yaml-cpp" || die
+ mv "${WORKDIR}/yaml-cpp-${YAMLCPP_COMMIT}"
"${S}/3rdparty/yaml-cpp/yaml-cpp" || die
+
+ #Define RPCS3 Version
+ { echo "#define RPCS3_GIT_VERSION \"${PV}\""
+ echo '#define RPCS3_GIT_BRANCH "master"'
+ echo '#define RPCS3_GIT_FULL_BRANCH "RPCS3/rpcs3/master"'
+ echo '#define RPCS3_GIT_VERSION_NO_UPDATE 1'; } >
rpcs3/git-version.h
+ fi
+
+ # Disable automagic ccache
+ sed -i -e '/find_program(CCACHE_FOUND ccache)/d' CMakeLists.txt || die
+
+ # Unbundle hidapi
+ sed -i -e '/hidapi\.h/{s:":<hidapi/:;s/"/>/}'
rpcs3/Input/hid_pad_handler.h || die
+ sed -i -e '/hidapi/d' 3rdparty/CMakeLists.txt || die
+ sed -i -e '1afind_package(PkgConfig
REQUIRED)\npkg_check_modules(hidapi-hidraw REQUIRED hidapi-hidraw)' \
+ rpcs3/CMakeLists.txt || die
+ sed -i -e 's/3rdparty::hidapi/hidapi-hidraw/' rpcs3/CMakeLists.txt
rpcs3/rpcs3qt/CMakeLists.txt || die
+ sed -i -e 's/hid_write_control/hid_write/' \
+ rpcs3/Input/dualsense_pad_handler.cpp
rpcs3/Input/ds4_pad_handler.cpp || die
+
+ # Unbundle cubeb
+ sed -i -e '/cubeb/d' 3rdparty/CMakeLists.txt || die
+ sed -i -e '$afind_package(cubeb)\n' CMakeLists.txt || die
+ sed -i -e 's/3rdparty::cubeb/cubeb/' rpcs3/Emu/CMakeLists.txt || die
+
+ # Unbundle yaml-cpp: system yaml-cpp should be compiled with
-fexceptions
+ # sed -i -e '/yaml-cpp/d' 3rdparty/CMakeLists.txt || die
+ # sed -i -e '$afind_package(yaml-cpp)\n' CMakeLists.txt || die
+ # sed -i -e 's/3rdparty::yaml-cpp/yaml-cpp/' rpcs3/Emu/CMakeLists.txt \
+ # rpcs3/rpcs3qt/CMakeLists.txt || die
+
+ # Fix build with GCC 15
+ #
https://github.com/KhronosGroup/glslang/commit/e40c14a3e007fac0e4f2e4164fdf14d1712355bd
+ sed -i '/<algorithm>/a#include <cstdint>'
3rdparty/glslang/glslang/SPIRV/SpvBuilder.h || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ filter-lto
+
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=OFF # to remove after unbundling
+ -DUSE_PRECOMPILED_HEADERS=ON
+ -DUSE_SYSTEM_CURL=ON
+ -DUSE_SYSTEM_FFMPEG=ON
+ -DUSE_SYSTEM_FLATBUFFERS=ON
+ -DUSE_SYSTEM_LIBPNG=ON
+ -DUSE_SYSTEM_LIBUSB=ON
+ -DUSE_SYSTEM_PUGIXML=ON
+ -DUSE_SYSTEM_XXHASH=ON
+ -DUSE_SYSTEM_ZLIB=ON
+ -DUSE_VULKAN=ON
+ -DUSE_DISCORD_RPC=$(usex discord)
+ -DUSE_FAUDIO=$(usex faudio)
+ -DUSE_SYSTEM_OPENCV=$(usex opencv)
+ -DWITH_LLVM=$(usex llvm)
+ $(cmake_use_find_package wayland Wayland)
+ )
+ # These options are defined conditionally to suppress QA notice
+ use faudio && mycmakeargs+=( -DUSE_SYSTEM_FAUDIO=$(usex faudio) )
+
+ cmake_src_configure
+
+ sed -i -e 's/FFMPEG_LIB_AVFORMAT-NOTFOUND/avformat/' -e
's/FFMPEG_LIB_AVCODEC-NOTFOUND/avcodec/' \
+ -e 's/FFMPEG_LIB_AVUTIL-NOTFOUND/avutil/' -e
's/FFMPEG_LIB_SWSCALE-NOTFOUND/swscale/' \
+ -e 's/FFMPEG_LIB_SWRESAMPLE-NOTFOUND/swresample/'
"${BUILD_DIR}"/build.ninja || die
+}
+
+src_install() {
+ cmake_src_install
+
+ # remove unneccessary files to save some space
+ rm -rf "${ED}/usr/share/rpcs3/"{git,test} || die
+}