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@gmail.com>
This commit is contained in:
Gonçalo Negrier Duarte
2024-04-14 18:31:28 +01:00
parent d8d53d97c5
commit e94aae8fe0
2 changed files with 92 additions and 6 deletions

View File

@@ -0,0 +1,29 @@
From 5d3427acaad0084caee0051c846efe9a333e5428 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gon=C3=A7alo=20Negrier=20Duarte?=
<gonegrier.duarte@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.duarte@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

View File

@@ -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