emulators/rpcs3: add -qt6 flavor

Based on upstream patch. Once merged, Qt5 won't be supported.
This commit is contained in:
Jan Beich 2022-11-02 14:54:26 +00:00
parent 6fe5630629
commit c214c3d4ae
3 changed files with 49 additions and 0 deletions

View file

@ -13,6 +13,8 @@ LICENSE_COMB= multi
LICENSE_FILE_ISCL= ${WRKSRC_cubeb}/LICENSE
LICENSE_FILE_ZLIB= ${WRKSRC_asmjit}/LICENSE.md
FLAVORS= qt5 qt6
BUILD_DEPENDS= flatc:devel/flatbuffers
LIB_DEPENDS= libxxhash.so:devel/xxhash \
libcurl.so:ftp/curl \
@ -47,6 +49,27 @@ CMAKE_OFF= USE_NATIVE_INSTRUCTIONS USE_PRECOMPILED_HEADERS
LDFLAGS+= -Wl,--as-needed # GLU
ELF_FEATURES= +noaslr,wxneeded:bin/${PORTNAME}
.if ${FLAVOR:U} == qt6 || make(makesum) || make(fetch)
PATCH_SITES+= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/:qt6
PATCHFILES+= 052d8cceb679.patch:-p1:qt6 # https://github.com/RPCS3/rpcs3/pull/12471
PKGNAMESUFFIX= -${FLAVOR}
USES:= ${USES:S/qt:5/qt:6/}
USE_QT= base multimedia svg
PKGMESSAGE= ${.CURDIR}/pkg-message.${FLAVOR}
CONFLICTS_INSTALL= ${PORTNAME}
post-patch: ${FLAVOR}-post-patch
${FLAVOR}-post-patch:
# patch(1) doesn't support renames unlike git-apply(1)
@${MV} ${WRKSRC}/rpcs3/rpcs3qt/qt_camera_video_surface.cpp \
${WRKSRC}/rpcs3/rpcs3qt/qt_camera_video_sink.cpp
@${MV} ${WRKSRC}/rpcs3/rpcs3qt/qt_camera_video_surface.h \
${WRKSRC}/rpcs3/rpcs3qt/qt_camera_video_sink.h
.else
CONFLICTS_INSTALL= ${PORTNAME}-qt6
.endif
OPTIONS_DEFINE= ALSA EVDEV FAUDIO PULSEAUDIO JACK SNDIO VULKAN
OPTIONS_DEFAULT=EVDEV FAUDIO PULSEAUDIO JACK SNDIO VULKAN

View file

@ -23,3 +23,5 @@ SHA256 (wolfSSL-wolfssl-v5.4.0-stable_GH0.tar.gz) = dc36cc19dad197253e5c2ecaa490
SIZE (wolfSSL-wolfssl-v5.4.0-stable_GH0.tar.gz) = 20972285
SHA256 (llvm-llvm-project-llvmorg-13.0.1-rc1_GH0.tar.gz) = c9411f1882eaf0c190fd5b412deb0bd7dba61a48df243d3408298cc6f53b6921
SIZE (llvm-llvm-project-llvmorg-13.0.1-rc1_GH0.tar.gz) = 147284646
SHA256 (052d8cceb679.patch) = 5e8e600ca1a6889a4f19b574275af1379a7c0b57de776f4d955dc95fdcb2c973
SIZE (052d8cceb679.patch) = 111096

View file

@ -0,0 +1,24 @@
{ type: install
message: <<EOM
Default output selection is broken in qt6-multimedia. To workaround RPCS3 crash
on game start open Settings -> Audio -> Music Handler then change Qt to Null.
Process 84361 stopped
* thread #1, name = 'rpcs3', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
frame #0: 0x0000000805112583 libQt6Multimedia.so.6`QMediaDevices::audioOutputs() at qmediadevices.cpp:133:47
130 */
131 QList<QAudioDevice> QMediaDevices::audioOutputs()
132 {
-> 133 return QPlatformMediaDevices::instance()->audioOutputs();
134 }
135
136 /*!
(lldb) bt
* thread #1, name = 'rpcs3', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
* frame #0: 0x0000000805112583 libQt6Multimedia.so.6`QMediaDevices::audioOutputs() at qmediadevices.cpp:133:47
frame #1: 0x000000080511274e libQt6Multimedia.so.6`QMediaDevices::defaultAudioOutput() at qmediadevices.cpp:190:26
frame #2: 0x00000008050c86ef libQt6Multimedia.so.6`QAudioOutput::QAudioOutput(this=0x0000000899ff05e0, parent=0x0000000000000000) at qaudiooutput.cpp:54:20
[...]
EOM
}
]