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
+}

Reply via email to