commit:     e94aae8fe0dc39882a76462cd83eae818673e887
Author:     Gonçalo Negrier Duarte <gonegrier.duarte <AT> gmail <DOT> com>
AuthorDate: Sun Apr 14 17:31:28 2024 +0000
Commit:     Gonçalo Negrier Duarte <gonegrier.duarte <AT> gmail <DOT> com>
CommitDate: Sun Apr 14 21:07:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e94aae8f

games-emulation/rpcs3: fix compile error on llvm-18

* https://github.com/RPCS3/rpcs3/issues/15448
* and releases logic to ebuild
* release 0.0.31 not added since it fails to compile on my system

Signed-off-by: Gonçalo Negrier Duarte <gonegrier.duarte <AT> gmail.com>

 ...-0001-gui_pad_thread-add-missing-unistd-h.patch | 29 +++++++++
 games-emulation/rpcs3/rpcs3-9999.ebuild            | 69 ++++++++++++++++++++--
 2 files changed, 92 insertions(+), 6 deletions(-)

diff --git 
a/games-emulation/rpcs3/files/rpcs3-0001-gui_pad_thread-add-missing-unistd-h.patch
 
b/games-emulation/rpcs3/files/rpcs3-0001-gui_pad_thread-add-missing-unistd-h.patch
new file mode 100644
index 0000000000..7bd67c06e3
--- /dev/null
+++ 
b/games-emulation/rpcs3/files/rpcs3-0001-gui_pad_thread-add-missing-unistd-h.patch
@@ -0,0 +1,29 @@
+From 5d3427acaad0084caee0051c846efe9a333e5428 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Gon=C3=A7alo=20Negrier=20Duarte?=
+ <gonegrier.dua...@gmail.com>
+Date: Sun, 14 Apr 2024 17:58:50 +0100
+Subject: [PATCH] rpcs3-gui_pad_thread-add-missing-unistd-h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Gonçalo Negrier Duarte <gonegrier.dua...@gmail.com>
+---
+ rpcs3/Input/gui_pad_thread.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/rpcs3/Input/gui_pad_thread.cpp b/rpcs3/Input/gui_pad_thread.cpp
+index 92fb23367..e3dbae518 100644
+--- a/rpcs3/Input/gui_pad_thread.cpp
++++ b/rpcs3/Input/gui_pad_thread.cpp
+@@ -22,6 +22,7 @@
+ #ifdef __linux__
+ #include <linux/uinput.h>
+ #include <fcntl.h>
++#include <unistd.h>
+ #define CHECK_IOCTRL_RET(res) if (res == -1) { gui_log.error("gui_pad_thread: 
ioctl failed (errno=%d=%s)", res, strerror(errno)); }
+ #elif defined(__APPLE__)
+ #pragma GCC diagnostic push
+-- 
+2.44.0
+

diff --git a/games-emulation/rpcs3/rpcs3-9999.ebuild 
b/games-emulation/rpcs3/rpcs3-9999.ebuild
index 7162b888ce..ec248dd211 100644
--- a/games-emulation/rpcs3/rpcs3-9999.ebuild
+++ b/games-emulation/rpcs3/rpcs3-9999.ebuild
@@ -3,15 +3,37 @@
 
 EAPI=8
 
-inherit cmake flag-o-matic git-r3 xdg
+inherit cmake flag-o-matic xdg
+
+ASMJIT_COMMIT="416f7356967c1f66784dc1580fe157f9406d8bff"
+GLSLANG_COMMIT="36d08c0d940cf307a23928299ef52c7970d8cee6"
+MINIUPNP_COMMIT="f22a96b4697699d32fdc2d17c5d0ad7880a99c24"
+RTMIDI_COMMIT="1e5b49925aa60065db52de44c366d446a902547b"
+WOLFSSL_COMMIT="8970ff4c34034dbb3594943d11f8c9d4c5512bd5"
+SOUNDTOUCH_COMMIT="ced3ce8d5ecc5aef8a5156fea206a37b33774bf3"
+YAMLCPP_COMMIT="456c68f452da09d8ca84b375faa2b1397713eaba"
 
 DESCRIPTION="PS3 emulator/debugger"
 HOMEPAGE="https://rpcs3.net/";
-EGIT_REPO_URI="https://github.com/RPCS3/rpcs3";
-EGIT_SUBMODULES=( 'asmjit' '3rdparty/glslang' '3rdparty/miniupnp/miniupnp' 
'3rdparty/rtmidi/rtmidi' '3rdparty/wolfssl'
-       '3rdparty/SoundTouch/soundtouch' )
-# Delete sources when ensuring yaml-cpp compiled with fexceptions
-EGIT_SUBMODULES+=( '3rdparty/yaml-cpp' )
+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' )
+       # 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-${SOUNDTOUCH_COMMIT}-.tar.gz
+       "
+       KEYWORDS="~amd64"
+fi
 
 LICENSE="GPL-2"
 SLOT="0"
@@ -46,7 +68,42 @@ RDEPEND="${DEPEND}"
 QA_PREBUILT="usr/share/rpcs3/test/.*"
 QA_WX_LOAD="usr/share/rpcs3/test/*"
 
+PATCHES=(
+       "${FILESDIR}/${PN}-0001-gui_pad_thread-add-missing-unistd-h.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/SoundTouch/soundtouch" || 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
 

Reply via email to