public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-emulation/pcsx2/files/, games-emulation/pcsx2/
Date: Tue, 25 Jul 2023 00:10:37 +0000 (UTC)	[thread overview]
Message-ID: <1690243271.ea2897a4c78f03ccb232e90c504c6707f8e24ff5.ionen@gentoo> (raw)

commit:     ea2897a4c78f03ccb232e90c504c6707f8e24ff5
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 24 23:34:38 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Jul 25 00:01:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea2897a4

games-emulation/pcsx2: add 1.7.4795

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 games-emulation/pcsx2/Manifest                     |   1 +
 .../pcsx2/files/pcsx2-1.7.4795-rapidyaml-0.5.patch |   8 +
 games-emulation/pcsx2/pcsx2-1.7.4795.ebuild        | 277 +++++++++++++++++++++
 3 files changed, 286 insertions(+)

diff --git a/games-emulation/pcsx2/Manifest b/games-emulation/pcsx2/Manifest
index 2a4397da1100..d986666bdaa4 100644
--- a/games-emulation/pcsx2/Manifest
+++ b/games-emulation/pcsx2/Manifest
@@ -1,5 +1,6 @@
 DIST pcsx2-1.6.0.tar.gz 17963332 BLAKE2B d1370fd089e1f8716a3365b9f499fef9418c4a9464e701cf0dbac8296cf59a2c6fc9b85ed680c514d8128da7b5c47aa8a067d48cac9eb0482ef2ba5f9234e60e SHA512 0a3e01a25384719fc72b636a1e9cf1cd966d0c978c1c3adfb46d6b3f76f43a25f90ef63d27a1d8092cdf444c5dc7560ce807ca81908d11ade9715e7eaaad6253
 DIST pcsx2-1.7.4624.tar.gz 11178711 BLAKE2B 539add6bf6b542b29c1ac61584dbfa549f9b866e56e72eaf9342d1e990576252c861542d4e397324efae73eda933756e14d871aaf6ece45edfb1e6e27d37b43a SHA512 af43136ffefe60e0adb85b930ec9da22a71e766a911e1a2ad37cfb1190338dee2a0a45ecd4c0de17ed5d0622b8b17d7c7ff9201ba8b2f9924d6b7d4b5804d6a1
+DIST pcsx2-1.7.4795.tar.gz 11816914 BLAKE2B b220979ebae7c9115ca464bd52e14f2fd76d02c58159c3cc49947a8ed530b49ab41ec1c0053bd5c5a63aa7d3052214e5c21bdb6000bf153524bba64a916143e2 SHA512 2b4c31deff5efc37cd672f5e9bb3bbda51091208c191cd726b9d25eea6c99a5d9466f8382a4e1e0ba9503be0681243b91b6d1cb3aad9689162275b83341b63e8
 DIST pcsx2-fast_float-32d21dcecb.tar.gz 76108 BLAKE2B 7a4e8e3bb67387c03912e5f7035ba3fab1aeaa119b36ebdeb14c45069b3270270a8b87de2774ec325d8ed2ef0604a3d3762432d42f1e026a213990ac39341e10 SHA512 2cbdc5b05ab7c19e20b4e34959b90d1fa866d4ba239ec0a4c434cd33bddfb1cb6f1da467b0a525f5a4887c9b1860e975fe074aca0d9e211f0fc7bc6402d3601e
 DIST pcsx2-fmt-b6f4ceaed0.tar.gz 826246 BLAKE2B 74a4784bd1842d3afa4023efb8f74ad53b4d5b4676c5529f2c7b516db568f91d945804db20b425fececfbf10a44a1fdf39a94f88d6f40339328ceb263e15b37f SHA512 805424979dbed28ba0a48f69928a14d122de50f21dcadb97f852dcc415ab8a7a30fcf2eb90c06f006c54cbea00fcfe449d340cbb40e6a0454fffbc009fbe25e5
 DIST pcsx2-glslang-c9706bdda0.tar.gz 3433325 BLAKE2B f2449a6c8b05e47367164d09036ae2302f0f28ec83c2e2f401426f52fbd4edf55f717f01eea2cbfe7554e1004b89ffdebc34ec21a95809fcbc719f69e65e8487 SHA512 5ff0902e95592525b2671788bf27717c85d0876b31e96374eff5128f9bf7caf93bb636e4d5e1916a5d641715a780172308403bd49305d9a07cf66358d7e6407c

diff --git a/games-emulation/pcsx2/files/pcsx2-1.7.4795-rapidyaml-0.5.patch b/games-emulation/pcsx2/files/pcsx2-1.7.4795-rapidyaml-0.5.patch
new file mode 100644
index 000000000000..c4d11083ad45
--- /dev/null
+++ b/games-emulation/pcsx2/files/pcsx2-1.7.4795-rapidyaml-0.5.patch
@@ -0,0 +1,8 @@
+Continuation of https://github.com/PCSX2/pcsx2/commit/a59f95317a3fd
+--- a/pcsx2/GameDatabase.cpp
++++ b/pcsx2/GameDatabase.cpp
+@@ -1040,3 +1040,3 @@
+ 	const u32 index = static_cast<u32>(s_hash_database.size());
+-	for (const ryml::NodeRef& n : node["hashes"].children())
++	for (const auto& n : node["hashes"].children())
+ 	{

diff --git a/games-emulation/pcsx2/pcsx2-1.7.4795.ebuild b/games-emulation/pcsx2/pcsx2-1.7.4795.ebuild
new file mode 100644
index 000000000000..7d24c2ae54cd
--- /dev/null
+++ b/games-emulation/pcsx2/pcsx2-1.7.4795.ebuild
@@ -0,0 +1,277 @@
+# 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: qtsvg, vulkan-loader, wayland
+COMMON_DEPEND="
+	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-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 )
+"
+# patches is a optfeature but always pull given PCSX2 complaints if it
+# is missing and it is fairly small (installs a ~1.5MB patches.zip)
+RDEPEND="
+	${COMMON_DEPEND}
+	games-emulation/pcsx2_patches
+"
+DEPEND="
+	${COMMON_DEPEND}
+	x11-base/xorg-proto
+	test? ( dev-cpp/gtest )
+"
+BDEPEND="
+	dev-qt/qttools:6[linguist]
+	wayland? (
+		dev-util/wayland-scanner
+		kde-frameworks/extra-cmake-modules
+	)
+"
+
+FILECAPS=(
+	-m 0755 "CAP_NET_RAW+eip CAP_NET_ADMIN+eip" usr/bin/pcsx2
+)
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.7.3468-cubeb-automagic.patch
+	"${FILESDIR}"/${PN}-1.7.3773-lto.patch
+	"${FILESDIR}"/${PN}-1.7.4667-flags.patch
+	"${FILESDIR}"/${PN}-1.7.4667-system-chdr.patch
+	"${FILESDIR}"/${PN}-1.7.4667-system-gtest.patch
+	"${FILESDIR}"/${PN}-1.7.4667-system-zstd.patch
+	"${FILESDIR}"/${PN}-1.7.4795-rapidyaml-0.5.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 soundtouch 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_LINKED_FFMPEG=yes
+		-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
+
+		# not packaged due to bug #885471, but still disable for no automagic
+		-DCMAKE_DISABLE_FIND_PACKAGE_Libbacktrace=yes
+
+		# 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
+}


             reply	other threads:[~2023-07-25  0:10 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-25  0:10 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-01  9:43 [gentoo-commits] repo/gentoo:master commit in: games-emulation/pcsx2/files/, games-emulation/pcsx2/ Ionen Wolkens
2024-07-02 15:55 Ionen Wolkens
2024-07-02  5:17 Ionen Wolkens
2024-06-22  9:34 Ionen Wolkens
2024-05-23  0:53 Ionen Wolkens
2024-05-21 17:19 Ionen Wolkens
2024-04-13 17:29 Ionen Wolkens
2024-01-08 12:59 Ionen Wolkens
2023-10-10 20:20 Ionen Wolkens
2023-07-01  9:07 Ionen Wolkens
2023-01-11 11:26 Ionen Wolkens
2022-12-29 20:29 Ionen Wolkens
2022-12-29  2:05 Ionen Wolkens
2022-12-19  5:48 Ionen Wolkens
2022-09-23  0:27 Ionen Wolkens
2022-07-31 20:38 James Le Cuirot
2020-10-27  7:35 Joonas Niilola
2018-07-23  6:17 Sergei Trofimovich
2017-01-18 10:46 David Seifert
2016-01-13 14:23 Patrice Clement

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1690243271.ea2897a4c78f03ccb232e90c504c6707f8e24ff5.ionen@gentoo \
    --to=ionen@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox