forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Ionen Wolkens <[email protected]>
- Loading branch information
Showing
2 changed files
with
156 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST pcsx2-1.6.0.tar.gz 17963332 BLAKE2B d1370fd089e1f8716a3365b9f499fef9418c4a9464e701cf0dbac8296cf59a2c6fc9b85ed680c514d8128da7b5c47aa8a067d48cac9eb0482ef2ba5f9234e60e SHA512 0a3e01a25384719fc72b636a1e9cf1cd966d0c978c1c3adfb46d6b3f76f43a25f90ef63d27a1d8092cdf444c5dc7560ce807ca81908d11ade9715e7eaaad6253 | ||
DIST pcsx2-1.7.5133.tar.xz 17898104 BLAKE2B 89fdc9eb7b1e2ba2ed6b8e36859b728cac593ad78b5d0ecf542e624787440dd7c783285870b170df0cd4eee7f8d97c33be7b065ecb5894084a048f76f5978284 SHA512 cdd27820954675a5ded2168238c4ca071447b1d31e8d92e9db96105d6dae66e2a8f9fc549fcdc5d0d04f3822d6dd3d3c3525f4f8131b18aa6ff5d1177a27b99a | ||
DIST pcsx2-1.7.5214.tar.xz 16995492 BLAKE2B 6eb096df5e58482f552651c469e337b108a0ba7b1064898fa7f2eb30c6787888bc4f6f5b1feb985ebf1196b66f96d6e5e24e6441b2ec5e2c7bfe663fd84b99e9 SHA512 3d787922c1478696e1baf1ec5f1adcf2e4654dcad94aac1d0c048951977c53f22c9a7e3ddcf25ab8b37b18dfef6c6ef1219b510db2abf2129606037e61364862 | ||
DIST pcsx2-1.7.5312.tar.xz 17999588 BLAKE2B ab8e80d51bd617aff0b62ed91f9bc3d31deb98872c0bc7db0a66813cc47cc77a9e45ce50044609a6559dd281212812b61b2d14dfa3e56b754647be40404faebd SHA512 6ca36b57e24c68b046fe85f6fce0a7ea726129ee5dceb28ca6b17fe72d9c80229817e23f0d5bcf314d2ad524ca399b751b77f4752e41a53c5bda5bc2effb1fd7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
# 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 | ||
# formerly was attempting to unbundle most, but upstream dropped every | ||
# checks for alternatively using system's and keeping this up has become | ||
# unmaintainable, and to simplify now also using tarballs with submodules | ||
SRC_URI="https://dev.gentoo.org/~ionen/distfiles/${P}.tar.xz" | ||
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 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 | ||
dev-libs/libaio | ||
>=dev-qt/qtbase-6.6.0:6[gui,widgets] | ||
>=dev-qt/qtsvg-6.6.0:6 | ||
media-libs/libglvnd | ||
media-libs/libpng:= | ||
>=media-libs/libsdl2-2.28.4[haptic,joystick] | ||
media-video/ffmpeg:= | ||
net-libs/libpcap | ||
net-misc/curl | ||
sys-apps/dbus | ||
sys-libs/zlib:= | ||
virtual/libudev:= | ||
x11-libs/libXrandr | ||
alsa? ( media-libs/alsa-lib ) | ||
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-0_p20230917 | ||
" | ||
DEPEND=" | ||
${COMMON_DEPEND} | ||
x11-base/xorg-proto | ||
" | ||
BDEPEND=" | ||
>=dev-qt/qttools-6.6.0:6[linguist] | ||
wayland? ( | ||
dev-util/wayland-scanner | ||
kde-frameworks/extra-cmake-modules | ||
) | ||
" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${PN}-1.7.3773-lto.patch | ||
"${FILESDIR}"/${PN}-1.7.4667-flags.patch | ||
"${FILESDIR}"/${PN}-1.7.5232-cubeb-automagic.patch | ||
) | ||
|
||
src_prepare() { | ||
cmake_src_prepare | ||
|
||
if [[ ${PV} != 9999 ]]; then | ||
sed -e '/set(PCSX2_GIT_TAG "")/s/""/"v'${PV}'"/' \ | ||
-i cmake/Pcsx2Utils.cmake || 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 | ||
filter-lto | ||
fi | ||
|
||
local mycmakeargs=( | ||
-DBUILD_SHARED_LIBS=no | ||
-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 # X libs are currently hard-required either way | ||
|
||
# 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() { | ||
insinto /usr/lib/${PN} | ||
doins -r "${BUILD_DIR}"/bin/. | ||
|
||
fperms +x /usr/lib/${PN}/pcsx2-qt | ||
dosym -r /usr/lib/${PN}/pcsx2-qt /usr/bin/${PN} | ||
|
||
newicon bin/resources/icons/AppIconLarge.png ${PN}.png | ||
make_desktop_entry ${PN} ${PN^^} | ||
|
||
dodoc README.md bin/docs/{Debugger.pdf,GameIndex.pdf,debugger.txt} | ||
|
||
use !test || rm "${ED}"/usr/lib/${PN}/*_test || die | ||
} | ||
|
||
pkg_postinst() { | ||
fcaps -m 0755 cap_net_admin,cap_net_raw=eip usr/lib/${PN}/pcsx2-qt | ||
|
||
if [[ ${REPLACING_VERSIONS##* } ]] && | ||
ver_test ${REPLACING_VERSIONS##* } -lt 1.7; then | ||
elog ">=${PN}-1.7 has received several changes since <=${PN}-1.6.0, and is" | ||
elog "notably now a 64bit build using Qt6. Just-in-case it is recommended" | ||
elog "to backup configs, save states, and memory cards before using." | ||
elog | ||
elog "The executable was also renamed from 'PCSX2' to 'pcsx2'." | ||
fi | ||
} |