From b8ec138c25f79c286acaf13a84905b32ea93649e Mon Sep 17 00:00:00 2001 From: Ionen Wolkens Date: Sat, 1 Jul 2023 04:54:08 -0400 Subject: games-emulation/pcsx2: drop 1.7.3738-r1, 1.7.4534-r1 Note that 1.7.3738 was the last version to support wxGTK, been kept for an extended period but can be dropped now that Qt6 is unmasked. Signed-off-by: Ionen Wolkens --- games-emulation/pcsx2/Manifest | 2 - games-emulation/pcsx2/files/pcsx2-1.7.0-crcs.patch | 43 ---- .../pcsx2/files/pcsx2-1.7.3329-lto.patch | 21 -- .../pcsx2/files/pcsx2-1.7.3329-qt6.patch | 10 - .../files/pcsx2-1.7.3602-rapidyaml-0.5.0.patch | 39 ---- games-emulation/pcsx2/pcsx2-1.7.3738-r1.ebuild | 246 -------------------- games-emulation/pcsx2/pcsx2-1.7.4534-r1.ebuild | 253 --------------------- 7 files changed, 614 deletions(-) delete mode 100644 games-emulation/pcsx2/files/pcsx2-1.7.0-crcs.patch delete mode 100644 games-emulation/pcsx2/files/pcsx2-1.7.3329-lto.patch delete mode 100644 games-emulation/pcsx2/files/pcsx2-1.7.3329-qt6.patch delete mode 100644 games-emulation/pcsx2/files/pcsx2-1.7.3602-rapidyaml-0.5.0.patch delete mode 100644 games-emulation/pcsx2/pcsx2-1.7.3738-r1.ebuild delete mode 100644 games-emulation/pcsx2/pcsx2-1.7.4534-r1.ebuild diff --git a/games-emulation/pcsx2/Manifest b/games-emulation/pcsx2/Manifest index 139f46d9d7e0..2a4397da1100 100644 --- a/games-emulation/pcsx2/Manifest +++ b/games-emulation/pcsx2/Manifest @@ -1,6 +1,4 @@ DIST pcsx2-1.6.0.tar.gz 17963332 BLAKE2B d1370fd089e1f8716a3365b9f499fef9418c4a9464e701cf0dbac8296cf59a2c6fc9b85ed680c514d8128da7b5c47aa8a067d48cac9eb0482ef2ba5f9234e60e SHA512 0a3e01a25384719fc72b636a1e9cf1cd966d0c978c1c3adfb46d6b3f76f43a25f90ef63d27a1d8092cdf444c5dc7560ce807ca81908d11ade9715e7eaaad6253 -DIST pcsx2-1.7.3738.tar.gz 15935061 BLAKE2B 51e113e2148c94861a3d6baab8de5b8ed613cdb6e3aa3574445f0a66e628dffb3bf26a6a3b54e0be65d71a90088fe6e79f65055d54e580d46ad4db1dadbb8a66 SHA512 7da8dd46cd065fefc4c2bb4ab76b8fc2bf9769dba78f47759c59b2a21e62cf0e5d53e9f800e16bf09238bf156cd7fa63a4ca75a47f41b78df9512a701536c789 -DIST pcsx2-1.7.4534.tar.gz 8973035 BLAKE2B 203432185e77d5380a436d176c349f8557fff240d7cc507c5009b95b8572647ce77df3d4ca0a4420819e06f6e45216810304e9c883c35c9d82dff2152997deb1 SHA512 0c369263127b56f75632f306218068b7dbb3ca226c0150755831f16e28c3204525c579f4d05f8cb4d27b186b98c1bd4f08ffd2d6d326342bcd97084c7f8f8f27 DIST pcsx2-1.7.4624.tar.gz 11178711 BLAKE2B 539add6bf6b542b29c1ac61584dbfa549f9b866e56e72eaf9342d1e990576252c861542d4e397324efae73eda933756e14d871aaf6ece45edfb1e6e27d37b43a SHA512 af43136ffefe60e0adb85b930ec9da22a71e766a911e1a2ad37cfb1190338dee2a0a45ecd4c0de17ed5d0622b8b17d7c7ff9201ba8b2f9924d6b7d4b5804d6a1 DIST pcsx2-fast_float-32d21dcecb.tar.gz 76108 BLAKE2B 7a4e8e3bb67387c03912e5f7035ba3fab1aeaa119b36ebdeb14c45069b3270270a8b87de2774ec325d8ed2ef0604a3d3762432d42f1e026a213990ac39341e10 SHA512 2cbdc5b05ab7c19e20b4e34959b90d1fa866d4ba239ec0a4c434cd33bddfb1cb6f1da467b0a525f5a4887c9b1860e975fe074aca0d9e211f0fc7bc6402d3601e DIST pcsx2-fmt-b6f4ceaed0.tar.gz 826246 BLAKE2B 74a4784bd1842d3afa4023efb8f74ad53b4d5b4676c5529f2c7b516db568f91d945804db20b425fececfbf10a44a1fdf39a94f88d6f40339328ceb263e15b37f SHA512 805424979dbed28ba0a48f69928a14d122de50f21dcadb97f852dcc415ab8a7a30fcf2eb90c06f006c54cbea00fcfe449d340cbb40e6a0454fffbc009fbe25e5 diff --git a/games-emulation/pcsx2/files/pcsx2-1.7.0-crcs.patch b/games-emulation/pcsx2/files/pcsx2-1.7.0-crcs.patch deleted file mode 100644 index aa647cd09c07..000000000000 --- a/games-emulation/pcsx2/files/pcsx2-1.7.0-crcs.patch +++ /dev/null @@ -1,43 +0,0 @@ -Upstream-PR: https://github.com/PCSX2/pcsx2/pull/5082 -Upstream-Issue: https://github.com/PCSX2/pcsx2/issues/1762 -Upstream-Issue: https://github.com/PCSX2/pcsx2/issues/5062 - -From: orbea -Date: Sun, 28 Nov 2021 16:18:48 -0800 -Subject: [PATCH] Revert "GS: Remove Unofficial CRCs (#4082)" - -These games hacks are still used and can be removed -again when a better solution is available. - -This reverts commit 6bcdb55f22d468b2eb8b95fd35bd071f9272a89c. - ---- a/pcsx2/GS/GSCrc.cpp -+++ b/pcsx2/GS/GSCrc.cpp -@@ -22,6 +22,8 @@ const CRC::Game CRC::m_games[] = - { - // Note: IDs 0x7ACF7E03, 0x7D4EA48F, 0x37C53760 - shouldn't be added as it's from the multiloaders when packing games. - {0x00000000, NoTitle, NoRegion, 0}, -+ {0xF46142D3, ArTonelico2, NoRegion, 0}, -+ {0xC38067F4, ArTonelico2, NoRegion, 0}, // project metafalica 1.0 - {0xF95F37EE, ArTonelico2, US, 0}, - {0x68CE6801, ArTonelico2, JP, 0}, - {0xCE2C1DBF, ArTonelico2, EU, 0}, -@@ -164,6 +166,8 @@ const CRC::Game CRC::m_games[] = - {0xBF6F101F, GiTS, EU, 0}, // same CRC as another US disc - {0xA616A6C2, TalesOfAbyss, US, 0}, - {0x14FE77F7, TalesOfAbyss, US, 0}, -+ {0x045D77E9, TalesOfAbyss, JPUNDUB, 0}, -+ {0x14FD77F7, TalesOfAbyss, JPUNDUB, 0}, - {0xAA5EC3A3, TalesOfAbyss, JP, 0}, - {0xFB236A46, SonicUnleashed, US, 0}, - {0x8C913264, SonicUnleashed, EU, 0}, ---- a/pcsx2/GS/GSCrc.h -+++ b/pcsx2/GS/GSCrc.h -@@ -91,6 +91,7 @@ public: - US, - EU, - JP, -+ JPUNDUB, - RU, - FR, - DE, diff --git a/games-emulation/pcsx2/files/pcsx2-1.7.3329-lto.patch b/games-emulation/pcsx2/files/pcsx2-1.7.3329-lto.patch deleted file mode 100644 index 1047105d646a..000000000000 --- a/games-emulation/pcsx2/files/pcsx2-1.7.3329-lto.patch +++ /dev/null @@ -1,21 +0,0 @@ -Lazy fix for -Werror=odr and don't rely on the CMAKE macro to -pass -fno-lto to the problematic FastJmp.cpp source with lto. ---- a/common/CMakeLists.txt -+++ b/common/CMakeLists.txt -@@ -268,3 +268,3 @@ - --if (USE_GCC AND CMAKE_INTERPROCEDURAL_OPTIMIZATION) -+if (USE_GCC) - # GCC LTO doesn't work with asm statements ---- a/pcsx2/PAD/Linux/Device.h -+++ b/pcsx2/PAD/Linux/Device.h -@@ -31,3 +31,3 @@ - --enum DeviceType -+enum PADDeviceType - { -@@ -101,3 +101,3 @@ - DeviceAPI api; -- DeviceType type; -+ PADDeviceType type; - diff --git a/games-emulation/pcsx2/files/pcsx2-1.7.3329-qt6.patch b/games-emulation/pcsx2/files/pcsx2-1.7.3329-qt6.patch deleted file mode 100644 index 9ef82985dc99..000000000000 --- a/games-emulation/pcsx2/files/pcsx2-1.7.3329-qt6.patch +++ /dev/null @@ -1,10 +0,0 @@ -https://github.com/PCSX2/pcsx2/commit/6386be09c2e disabled PACKAGE_MODE -for reasons that make no sense as far as installing from an ebuild goes. - -Skip the error and handle the rest from the ebuild. ---- a/pcsx2-qt/CMakeLists.txt -+++ b/pcsx2-qt/CMakeLists.txt -@@ -7,3 +7,2 @@ - if (PACKAGE_MODE) -- message(FATAL_ERROR "Package mode is not supported for Qt builds.") - else() diff --git a/games-emulation/pcsx2/files/pcsx2-1.7.3602-rapidyaml-0.5.0.patch b/games-emulation/pcsx2/files/pcsx2-1.7.3602-rapidyaml-0.5.0.patch deleted file mode 100644 index aee1608ea754..000000000000 --- a/games-emulation/pcsx2/files/pcsx2-1.7.3602-rapidyaml-0.5.0.patch +++ /dev/null @@ -1,39 +0,0 @@ -https://github.com/PCSX2/pcsx2/issues/7623 -https://github.com/PCSX2/pcsx2/pull/7847 ---- a/pcsx2/GameDatabase.cpp -+++ b/pcsx2/GameDatabase.cpp -@@ -151,5 +151,5 @@ - if (node.has_child("gameFixes") && node["gameFixes"].has_children()) - { -- for (const ryml::NodeRef& n : node["gameFixes"].children()) -+ for (const ryml::ConstNodeRef& n : node["gameFixes"].children()) - { - bool fixValidated = false; -@@ -182,5 +182,5 @@ - if (node.has_child("speedHacks") && node["speedHacks"].has_children()) - { -- for (const ryml::NodeRef& n : node["speedHacks"].children()) -+ for (const ryml::ConstNodeRef& n : node["speedHacks"].children()) - { - bool speedHackValidated = false; -@@ -212,5 +212,5 @@ - if (node.has_child("gsHWFixes")) - { -- for (const ryml::NodeRef& n : node["gsHWFixes"].children()) -+ for (const ryml::ConstNodeRef& n : node["gsHWFixes"].children()) - { - const std::string_view id_name(n.key().data(), n.key().size()); -@@ -233,5 +233,5 @@ - if (node.has_child("memcardFilters") && node["memcardFilters"].has_children()) - { -- for (const ryml::NodeRef& n : node["memcardFilters"].children()) -+ for (const ryml::ConstNodeRef& n : node["memcardFilters"].children()) - { - auto memcardFilter = std::string(n.val().str, n.val().len); -@@ -243,5 +243,5 @@ - if (node.has_child("patches") && node["patches"].has_children()) - { -- for (const ryml::NodeRef& n : node["patches"].children()) -+ for (const ryml::ConstNodeRef& n : node["patches"].children()) - { - // use a crc of 0 for default patches diff --git a/games-emulation/pcsx2/pcsx2-1.7.3738-r1.ebuild b/games-emulation/pcsx2/pcsx2-1.7.3738-r1.ebuild deleted file mode 100644 index b0b340795652..000000000000 --- a/games-emulation/pcsx2/pcsx2-1.7.3738-r1.ebuild +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -WX_GTK_VER="3.0-gtk3" -inherit cmake fcaps flag-o-matic wxwidgets - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/PCSX2/pcsx2.git" -else - HASH_FASTFLOAT=32d21dcecb404514f94fb58660b8029a4673c2c1 - HASH_FMT=b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9 - HASH_RCHEEVOS=31f8788fe0e694e99db7ce138d45a655c556fa96 - HASH_GLSLANG=c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5 - HASH_VULKAN=9f4c61a31435a7a90a314fc68aeb386c92a09c0f - SRC_URI=" - https://github.com/PCSX2/pcsx2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz - https://github.com/fastfloat/fast_float/archive/${HASH_FASTFLOAT}.tar.gz - -> ${PN}-fast_float-${HASH_FASTFLOAT::10}.tar.gz - https://github.com/fmtlib/fmt/archive/${HASH_FMT}.tar.gz - -> ${PN}-fmt-${HASH_FMT::10}.tar.gz - https://github.com/RetroAchievements/rcheevos/archive/${HASH_RCHEEVOS}.tar.gz - -> ${PN}-rcheevos-${HASH_RCHEEVOS::10}.tar.gz - vulkan? ( - https://github.com/KhronosGroup/glslang/archive/${HASH_GLSLANG}.tar.gz - -> ${PN}-glslang-${HASH_GLSLANG::10}.tar.gz - https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz - -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz - )" - KEYWORDS="-* ~amd64" -fi - -DESCRIPTION="PlayStation 2 emulator" -HOMEPAGE="https://pcsx2.net/" - -LICENSE=" - GPL-3+ Apache-2.0 BSD BSD-2 BSD-4 Boost-1.0 CC0-1.0 GPL-2+ - ISC LGPL-2.1+ LGPL-3+ MIT OFL-1.1 ZLIB public-domain" -SLOT="0" -IUSE="alsa cpu_flags_x86_sse4_1 jack pulseaudio qt6 sndio test vulkan wayland" -REQUIRED_USE="cpu_flags_x86_sse4_1" # dies at runtime if no support -RESTRICT="!test? ( test )" - -RDEPEND=" - app-arch/xz-utils - app-arch/zstd:= - >=dev-cpp/rapidyaml-0.5:= - dev-libs/libaio - dev-libs/libchdr - dev-libs/libzip:=[zstd] - media-libs/harfbuzz - media-libs/libglvnd - media-libs/libpng:= - >=media-libs/libsdl2-2.0.22[haptic,joystick] - media-libs/libsoundtouch:= - net-libs/libpcap - sys-libs/zlib:= - virtual/libudev:= - x11-libs/libX11 - x11-libs/libXrandr - alsa? ( media-libs/alsa-lib ) - jack? ( virtual/jack ) - pulseaudio? ( media-libs/libpulse ) - qt6? ( - dev-qt/qtbase:6[gui,network,widgets] - dev-qt/qtsvg:6 - net-misc/curl - ) - !qt6? ( - dev-libs/glib:2 - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[wayland?] - x11-libs/wxGTK:${WX_GTK_VER}[X] - ) - sndio? ( media-sound/sndio:= ) - vulkan? ( media-libs/vulkan-loader ) - wayland? ( dev-libs/wayland )" -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto - test? ( dev-cpp/gtest )" -BDEPEND=" - dev-lang/perl - qt6? ( dev-qt/qttools:6[linguist] ) - !qt6? ( sys-devel/gettext )" - -FILECAPS=( - -m 0755 "CAP_NET_RAW+eip CAP_NET_ADMIN+eip" usr/bin/pcsx2 -) - -PATCHES=( - "${FILESDIR}"/${PN}-1.7.0-crcs.patch - "${FILESDIR}"/${PN}-1.7.3329-lto.patch - "${FILESDIR}"/${PN}-1.7.3329-qt6.patch - "${FILESDIR}"/${PN}-1.7.3351-unbundle.patch - "${FILESDIR}"/${PN}-1.7.3468-cubeb-automagic.patch - "${FILESDIR}"/${PN}-1.7.3602-rapidyaml-0.5.0.patch -) - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - local EGIT_SUBMODULES=( - # libfmt is volatile and upstream is unlikely to make fixes for - # latest system copy punctually (may revisit this eventually) - 3rdparty/fmt/fmt - - # has no build system and is not really setup for unbundling - 3rdparty/rcheevos/rcheevos - - # system rapidyaml is still used, but this uses another part - # of the source directly (fast_float) and so allow the submodule - # https://github.com/PCSX2/pcsx2/commit/af646e449 - 3rdparty/rapidyaml/rapidyaml - 3rdparty/rapidyaml/rapidyaml/extern/c4core - 3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float - - # glslang can be troublesome to unbundle (bug #831217), - # also keep vulkan-headers to stay in sync - $(usev vulkan ' - 3rdparty/glslang/glslang - 3rdparty/vulkan-headers') - ) - - git-r3_src_unpack - else - default - - mkdir -p "${S}"/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext || die - mv fast_float-${HASH_FASTFLOAT} \ - "${S}"/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float || die - - rmdir "${S}"/3rdparty/fmt/fmt || die - mv fmt-${HASH_FMT} "${S}"/3rdparty/fmt/fmt || die - - rmdir "${S}"/3rdparty/rcheevos/rcheevos || die - mv rcheevos-${HASH_RCHEEVOS} "${S}"/3rdparty/rcheevos/rcheevos || die - - if use vulkan; then - rmdir "${S}"/3rdparty/{glslang/glslang,vulkan-headers} || die - mv glslang-${HASH_GLSLANG} "${S}"/3rdparty/glslang/glslang || die - mv Vulkan-Headers-${HASH_VULKAN} "${S}"/3rdparty/vulkan-headers || die - fi - fi -} - -src_prepare() { - cmake_src_prepare - - # qt6 build doesn't support PACKAGE_MODE and need to set resources location - sed -e "/EmuFolders::AppRoot =/s|=.*|= \"${EPREFIX}/usr/share/PCSX2\";|" \ - -i pcsx2/Frontend/CommonHost.cpp || die - - if [[ ${PV} != 9999 ]]; then - sed -e '/set(PCSX2_GIT_TAG "")/s/""/"v'${PV}'"/' \ - -i cmake/Pcsx2Utils.cmake || die - - # delete all 3rdparty/* except known-used ones in non-live - local keep=( - # TODO?: rapidjson and xbyak are packaged and could be unbundlable - # w/ patch, and discord-rpc be optional w/ dependency on rapidjson - cpuinfo cubeb discord-rpc fmt glad imgui include jpgd lzma - rapidjson rapidyaml rcheevos simpleini xbyak zydis - $(usev vulkan 'glslang vulkan-headers') - ) - find 3rdparty -mindepth 1 -maxdepth 1 -type d \ - -not \( -false ${keep[*]/#/-o -name } \) -exec rm -r {} + || die - fi -} - -src_configure() { - use qt6 || setup-wxwidgets - - # for bundled glslang (bug #858374) - use vulkan && append-flags -fno-strict-aliasing - - local mycmakeargs=( - -DBUILD_SHARED_LIBS=no - -DDISABLE_BUILD_DATE=yes - -DDISABLE_PCSX2_WRAPPER=yes - -DDISABLE_SETCAP=yes - -DENABLE_TESTS=$(usex test) - -DPACKAGE_MODE=yes - -DQT_BUILD=$(usex qt6) - -DUSE_VTUNE=no - -DUSE_VULKAN=$(usex vulkan) - -DWAYLAND_API=$(usex wayland) - -DXDG_STD=yes - - # note that the current upstream is somewhat hostile to using system - # libs, system installs, or any modifications and may disregard any - # bugs that is not reproducible with the appimage using bundled libs - -DUSE_SYSTEM_LIBS=yes - -DUSE_SYSTEM_FMT=no # volatile, keep bundled at least "for now" - - # sse4.1 is the bare minimum required, -m is required at build time - # (see PCSX2Base.h) and it dies if no support at runtime (AppInit.cpp) - # https://github.com/PCSX2/pcsx2/pull/4329 - -DARCH_FLAG=-msse4.1 - - # bundled cubeb flags, see media-libs/cubeb and cubeb-automagic.patch - -DCHECK_ALSA=$(usex alsa) - -DCHECK_JACK=$(usex jack) - -DCHECK_PULSE=$(usex pulseaudio) - -DCHECK_SNDIO=$(usex sndio) - -DLAZY_LOAD_LIBS=no - ) - - cmake_src_configure -} - -src_test() { - cmake_build unittests -} - -src_install() { - cmake_src_install - - use qt6 && newbin "${BUILD_DIR}"/pcsx2-qt/pcsx2-qt pcsx2 -} - -pkg_postinst() { - fcaps_pkg_postinst - - local replacing_old - if [[ ${REPLACING_VERSIONS##* } ]] && - ver_test ${REPLACING_VERSIONS##* } -lt 1.6.1 - then - replacing_old= - elog ">=${PN}-1.7 has received several changes since <=${PN}-1.6.0, just-in-case" - elog "it is recommended to backup your save states and memory cards before use." - elog "Note that the executable was also renamed from 'PCSX2' to 'pcsx2'." - fi - - if [[ ${PV} != 9999 && ( ! ${REPLACING_VERSIONS} || -v replacing_old ) ]]; then - [[ -v replacing_old ]] && elog - elog "${PN}-1.7.x is a development branch where .x increments every changes." - elog "Stable 1.6.0 is getting old and lacks many notable features (e.g. native" - elog "64bit builds). Given it may be a long time before there is a new stable," - elog "Gentoo will carry and update 1.7.x roughly every months." - elog - elog "Please report an issue if feel a picked version needs to be updated ahead" - elog "of time or masked (notably for handling regressions)." - fi -} diff --git a/games-emulation/pcsx2/pcsx2-1.7.4534-r1.ebuild b/games-emulation/pcsx2/pcsx2-1.7.4534-r1.ebuild deleted file mode 100644 index d2af26b4d0ef..000000000000 --- a/games-emulation/pcsx2/pcsx2-1.7.4534-r1.ebuild +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake desktop fcaps flag-o-matic - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/PCSX2/pcsx2.git" -else - HASH_FASTFLOAT=32d21dcecb404514f94fb58660b8029a4673c2c1 - HASH_FMT=b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9 - HASH_RCHEEVOS=31f8788fe0e694e99db7ce138d45a655c556fa96 - HASH_GLSLANG=c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5 - HASH_VULKAN=9f4c61a31435a7a90a314fc68aeb386c92a09c0f - SRC_URI=" - https://github.com/PCSX2/pcsx2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz - https://github.com/fastfloat/fast_float/archive/${HASH_FASTFLOAT}.tar.gz - -> ${PN}-fast_float-${HASH_FASTFLOAT::10}.tar.gz - https://github.com/fmtlib/fmt/archive/${HASH_FMT}.tar.gz - -> ${PN}-fmt-${HASH_FMT::10}.tar.gz - https://github.com/RetroAchievements/rcheevos/archive/${HASH_RCHEEVOS}.tar.gz - -> ${PN}-rcheevos-${HASH_RCHEEVOS::10}.tar.gz - vulkan? ( - https://github.com/KhronosGroup/glslang/archive/${HASH_GLSLANG}.tar.gz - -> ${PN}-glslang-${HASH_GLSLANG::10}.tar.gz - https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz - -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz - )" - KEYWORDS="-* ~amd64" -fi - -DESCRIPTION="PlayStation 2 emulator" -HOMEPAGE="https://pcsx2.net/" - -LICENSE=" - GPL-3+ Apache-2.0 BSD BSD-2 BSD-4 Boost-1.0 CC0-1.0 GPL-2+ - ISC LGPL-2.1+ LGPL-3+ MIT OFL-1.1 ZLIB public-domain" -SLOT="0" -IUSE="alsa cpu_flags_x86_sse4_1 dbus jack pulseaudio sndio test vulkan wayland" -REQUIRED_USE="cpu_flags_x86_sse4_1" # dies at runtime if no support -RESTRICT="!test? ( test )" - -# dlopen: ffmpeg, qtsvg, vulkan-loader, wayland -RDEPEND=" - app-arch/xz-utils - app-arch/zstd:= - dev-cpp/rapidyaml:= - dev-libs/libaio - dev-libs/libchdr - dev-libs/libzip:=[zstd] - dev-qt/qtbase:6[gui,network,widgets] - dev-qt/qtsvg:6 - media-libs/libglvnd - media-libs/libpng:= - >=media-libs/libsdl2-2.0.22[haptic,joystick] - media-libs/libsoundtouch:= - media-video/ffmpeg:= - net-libs/libpcap - net-misc/curl - sys-libs/zlib:= - virtual/libudev:= - x11-libs/libXrandr - alsa? ( media-libs/alsa-lib ) - dbus? ( sys-apps/dbus ) - jack? ( virtual/jack ) - pulseaudio? ( media-libs/libpulse ) - sndio? ( media-sound/sndio:= ) - vulkan? ( media-libs/vulkan-loader ) - wayland? ( dev-libs/wayland )" -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto - test? ( dev-cpp/gtest )" -BDEPEND="dev-qt/qttools:6[linguist]" - -FILECAPS=( - -m 0755 "CAP_NET_RAW+eip CAP_NET_ADMIN+eip" usr/bin/pcsx2 -) - -PATCHES=( - "${FILESDIR}"/${PN}-1.7.3351-unbundle.patch - "${FILESDIR}"/${PN}-1.7.3468-cubeb-automagic.patch - "${FILESDIR}"/${PN}-1.7.3773-lto.patch -) - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - local EGIT_SUBMODULES=( - # libfmt is volatile and upstream is unlikely to make fixes for - # latest system copy punctually (may revisit this eventually) - 3rdparty/fmt/fmt - - # has no build system and is not really setup for unbundling - 3rdparty/rcheevos/rcheevos - - # system rapidyaml is still used, but this uses another part - # of the source directly (fast_float) and so allow the submodule - # https://github.com/PCSX2/pcsx2/commit/af646e449 - 3rdparty/rapidyaml/rapidyaml - 3rdparty/rapidyaml/rapidyaml/extern/c4core - 3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float - - # glslang can be troublesome to unbundle (bug #831217), - # also keep vulkan-headers to stay in sync - $(usev vulkan ' - 3rdparty/glslang/glslang - 3rdparty/vulkan-headers') - ) - - git-r3_src_unpack - else - default - - mkdir -p "${S}"/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext || die - mv fast_float-${HASH_FASTFLOAT} \ - "${S}"/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float || die - - rmdir "${S}"/3rdparty/fmt/fmt || die - mv fmt-${HASH_FMT} "${S}"/3rdparty/fmt/fmt || die - - rmdir "${S}"/3rdparty/rcheevos/rcheevos || die - mv rcheevos-${HASH_RCHEEVOS} "${S}"/3rdparty/rcheevos/rcheevos || die - - if use vulkan; then - rmdir "${S}"/3rdparty/{glslang/glslang,vulkan-headers} || die - mv glslang-${HASH_GLSLANG} "${S}"/3rdparty/glslang/glslang || die - mv Vulkan-Headers-${HASH_VULKAN} "${S}"/3rdparty/vulkan-headers || die - fi - fi -} - -src_prepare() { - cmake_src_prepare - - sed -e "/AppRoot =/s|=.*|= \"${EPREFIX}/usr/share/${PN}\";|" \ - -i pcsx2/Pcsx2Config.cpp || die - - if [[ ${PV} != 9999 ]]; then - sed -e '/set(PCSX2_GIT_TAG "")/s/""/"v'${PV}-gentoo'"/' \ - -i cmake/Pcsx2Utils.cmake || die - - # delete all 3rdparty/* except known-used ones in non-live - local keep=( - # TODO?: rapidjson and xbyak are packaged and could be unbundlable - # w/ patch, and discord-rpc be optional w/ dependency on rapidjson - cpuinfo cubeb demangler discord-rpc fmt glad imgui include jpgd - lzma rapidjson rapidyaml rcheevos simpleini xbyak zydis - $(usev vulkan 'glslang vulkan-headers') - ) - find 3rdparty -mindepth 1 -maxdepth 1 -type d \ - -not \( -false ${keep[*]/#/-o -name } \) -exec rm -r {} + || die - fi -} - -src_configure() { - if use vulkan; then - # for bundled glslang (bug #858374) - append-flags -fno-strict-aliasing - - # odr violations in pcsx2's vulkan code, disabling as a safety for now - # (vulkan support tend to receive major changes, is more on WIP side) - filter-lto - fi - - local mycmakeargs=( - -DBUILD_SHARED_LIBS=no - -DDBUS_API=$(usex dbus) - -DDISABLE_BUILD_DATE=yes - -DENABLE_TESTS=$(usex test) - -DUSE_VTUNE=no - -DUSE_VULKAN=$(usex vulkan) - -DWAYLAND_API=$(usex wayland) - -DX11_API=yes # fails if X libs are missing even if disabled - - # note that the current upstream is somewhat hostile to using system - # libs, system installs, or any modifications and may disregard any - # bugs that is not reproducible with the appimage using bundled libs - -DUSE_SYSTEM_LIBS=yes - -DUSE_SYSTEM_FMT=no # volatile, keep bundled at least "for now" - - # sse4.1 is the bare minimum required, -m is required at build time - # (see PCSX2Base.h) and it dies if no support at runtime (AppInit.cpp) - # https://github.com/PCSX2/pcsx2/pull/4329 - -DARCH_FLAG=-msse4.1 - - # bundled cubeb flags, see media-libs/cubeb and cubeb-automagic.patch - -DCHECK_ALSA=$(usex alsa) - -DCHECK_JACK=$(usex jack) - -DCHECK_PULSE=$(usex pulseaudio) - -DCHECK_SNDIO=$(usex sndio) - -DLAZY_LOAD_LIBS=no - ) - - cmake_src_configure -} - -src_test() { - cmake_build unittests -} - -src_install() { - newbin "${BUILD_DIR}"/bin/pcsx2-qt ${PN} - - insinto /usr/share/${PN} - doins -r "${BUILD_DIR}"/bin/resources - - dodoc README.md bin/docs/{Debugger.pdf,GameIndex.pdf,debugger.txt} - - newicon bin/resources/icons/AppIconLarge.png ${PN}.png - make_desktop_entry ${PN} ${PN^^} -} - -pkg_postinst() { - fcaps_pkg_postinst - - local replacing= - if [[ ${REPLACING_VERSIONS##* } ]]; then - if ver_test ${REPLACING_VERSIONS##* } -lt 1.6.1; then - replacing=old - elif ver_test ${REPLACING_VERSIONS##* } -lt 1.7.3773; then - replacing=wx - else - replacing=any - fi - fi - - if [[ ${replacing} == old ]]; then - elog - elog ">=${PN}-1.7 has received several changes since <=${PN}-1.6.0, notably" - elog "it is now a 64bit build using Qt6. Just-in-case it is recommended to" - elog "backup your configs, save states, and memory cards before use." - elog "The executable was also renamed from 'PCSX2' to 'pcsx2'." - fi - - if [[ ${replacing} == @(|old) && ${PV} != 9999 ]]; then - elog - elog "${PN}-1.7.x is a development branch where .x increments every changes." - elog "Stable 1.6.0 is getting old and lacks many notable features (e.g. native" - elog "64bit builds). Given it may be a long time before there is a new stable," - elog "Gentoo will carry and update 1.7.x roughly every months." - elog - elog "Please report an issue if feel a picked version needs to be updated ahead" - elog "of time or masked (notably for handling regressions)." - fi - - if [[ ${replacing} == wx ]]; then - ewarn - ewarn "Note that wxGTK support been dropped upstream since >=${PN}-1.7.3773," - ewarn "and so USE=qt6 is gone and Qt6 is now always used." - fi -} -- cgit v1.2.3-65-gdbad