From c31f575f39c1e387f18f630fb01d3a89c2339fdf Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 5 Feb 2024 17:43:10 +0000 Subject: gentoo auto-resync : 05:02:2024 - 17:43:10 --- games-emulation/ppsspp/Manifest | 5 + .../ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch | 176 +++++++++++++++++++++ .../ppsspp/files/ppsspp-1.17.1-ccache-18826.patch | 33 ++++ .../ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch | 11 ++ games-emulation/ppsspp/ppsspp-1.17.1.ebuild | 84 ++++++++++ 5 files changed, 309 insertions(+) create mode 100644 games-emulation/ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch create mode 100644 games-emulation/ppsspp/files/ppsspp-1.17.1-ccache-18826.patch create mode 100644 games-emulation/ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch create mode 100644 games-emulation/ppsspp/ppsspp-1.17.1.ebuild (limited to 'games-emulation/ppsspp') diff --git a/games-emulation/ppsspp/Manifest b/games-emulation/ppsspp/Manifest index 245acd6189ab..884563a84101 100644 --- a/games-emulation/ppsspp/Manifest +++ b/games-emulation/ppsspp/Manifest @@ -1,11 +1,16 @@ AUX ppsspp-1.15.4-backport-ce83fec.patch 722 BLAKE2B ef59ce8259977584c2f6c22c1cca3f32566a13369a7c5b815d9917688b327d1fbd9e0b4cebe3a287fe1d5fe52dc6b31500554bd3a223050c838045dc847fc9bc SHA512 a2ce80d8f73ea297833448c8f58c1d7807edd21e4b33634a18ff1b742b2451caa58ec4dbd204f9f2af4ccb485f51114fdbf7442dd3b943b864f447d51e972111 AUX ppsspp-1.16-MIPSTables-fix-includes.patch 196 BLAKE2B 6043f05aab6e5b620017a41c5da49a153a70e45057712c034504c9c8e89583439608e23ba1ae4c508e2ab2f12cab99c5478979ad555089aad390abbd36fe67ca SHA512 fa9d66a5f3411452218d776373a54d426ab971d05cb4ccf2a7e36644e6ec4444162cb4d85c5a04a1f956cab6714b2e43027eae451af3e380fb2ac22ac9164159 +AUX ppsspp-1.17.1-avcodec-18825.patch 5521 BLAKE2B 162218675d1f4d87caa7a66d17a8d589b24d55b5966087548fc1dbd50fef5cdb36415393274741e7eb5da875c367da74821c1be25b0d3b92763707bd37b54bb0 SHA512 f5c1c496945ed4e3c717f470372f9e15f421821b745a7c1e4dc9b56442263ba122ac0ebd5025c81c70a2319094ea411f513cc280786a2d0d87260a7fae3128ba +AUX ppsspp-1.17.1-ccache-18826.patch 1110 BLAKE2B 243a9bf36da743a4e147355703976a2acd2e6b8f82186ff87f70cf99acb72cbb5cabe9042a829d3f8746c59776680d74d88ef2401b549b2d74e3955160d9f292 SHA512 e550ac21041572a20a1ae900256093a8b7a7cca183ca057fa8a81e35cd913b934098c5c432e02489a742b13f96b486dfab457db282663c224f0e2d8c1d3be0e3 +AUX ppsspp-1.17.1-cmake-cxx.patch 252 BLAKE2B 4d20d67c111e9992a2a728c5d294034a3385181079d00e886aa24bb60f9bf861485d11c2292dcaee2a03c4c434cf0713664a44865bc081968369c48733b0df68 SHA512 3c122bf12349b51fbda0a86ffa3f46afad6e5a766e0ff4ea4ceda2acda90a7a758e78732fb7dc20fc8a297f3eb71e0c5d2e2de69d566268a0bbfee16490c0c79 AUX ppsspp-CMakeLists-flags.patch 913 BLAKE2B 7bd5df94b51dad35325586f7ad23284436ba670a8c2218a4a6bfb28fb5a055240aeb0543fe331310a0d86d3661cbdf418689a592139ff832802ba1fabbd10fc3 SHA512 5b2ee899b2fbed7229d4abc027e2a010327be4d334e343f977319c475feaf2d180bd74d3640022d0175b11e8256035c828dd4cf03c8a5b9240c989b2d7f72fb7 AUX ppsspp-disable-ccache-autodetection.patch 753 BLAKE2B aa580bb2c657830bb079618e83903c4a0e28aa13acd612592f58feae2b0ef98535ea6f7e3c76aa9e74004aa80367aea372aec443bb2b789d5f3e7359872ea34f SHA512 cbf1f6e9f200cfa3b51bb84e09206a85aaea38511c0036a24d5e12547c659019fe88fbf221d2f7ddbdb9f0129f8b0fabb24baa594c658ab5ab584a0a723bc1c4 DIST ppsspp-1.15.4.tar.xz 51947468 BLAKE2B c6a5e621b02556b791ec41389f17dede63811c87ff628b8f1304ac950071b365ecc9be05f4042e4e3b81e77f5a14b6931577f08b0174fec821350a1d7eca4d6a SHA512 9d2c140b0d633e5ca6191aaf276b7e4f6d029f29d1313a45fb78ee3879fec09f57d816604c51474ab6fe9cde713787d5769e87466d3c3015fe6a9b195ff198d2 DIST ppsspp-1.16.4.tar.xz 51110488 BLAKE2B 061090bfd646b0839de7aed8e4b249ac86353c8742cd293c8df5ffc0d93a67f960ff4836bc13b534ba34871719cea2dc485b7d14deaa17aa5ff3dd6f8663687e SHA512 6364bb821a456409c9ee20eb589d761aef02d7756063bd5faa035b856ca551db0675a65767a9ad09dc8eba5fda6ede8ea3eb384b6770570bd4925e11b8c05ac5 DIST ppsspp-1.16.tar.xz 50656132 BLAKE2B 5149bd859134a76a191e0f144bdcefc4c521276ebb1390fe5e24eeeb1227b77bab0458a760f29aed5ba169d566f12d5226f2b50a19e44172f1ad98c4eb8f400f SHA512 d65a8c9fb5d7ff45a99f5852d1071029bc51c1e8bdb45b3e78d961a46587553db4465bbd97b301db54a94b60772359929524047f08de3067cd3336f5f7717826 +DIST ppsspp-1.17.1.tar.xz 54663108 BLAKE2B 91c4964c9f334d42e090f59485e2f02ba8edb780903d2fa46e1a9cea77f6cc9e1a0605310d76445738259c0e99d5d1ca0764ef5f5565e781b482d5d5274620e5 SHA512 eaa0046f5d8e529efd8238690fa242638aa88630172abe59c4b7ffb16b1e18eeb38fcaf8e70ef76dbd2304b226d1f33e10cde709abe00fa2a5baff16c1883c31 EBUILD ppsspp-1.15.4.ebuild 1545 BLAKE2B 8e946a4d6ba410dc58f71fb79cd30b58644521ee1287bf0cf27c0fe96f44093445ba7c42d3d6449bcfd2c870ef58f458d3a83a14c7005a6112cd980a5a787898 SHA512 58d6df0028e5c966279339b48a27bba9207c7fe3b9495355118f3684d70a71d7522e2c5c80311035a828f7bcfc5d490b4224e80888dfd0db8beba41a1f5a43a1 EBUILD ppsspp-1.16.4.ebuild 1667 BLAKE2B abb3abbd347487d5db0bd01c2ff162f1643910ec7081f165fdc894ccf4588c67739838cc485b9166ff6a4d5728d97f69dfb1eea673a74adc873868f730a98045 SHA512 c817913317ac122905f344f999417c7847e63292f47a1b16819322cc4726e23373e650a77f35f2ff068f86324e356c6fefff155f432507f89468ad40aa913387 EBUILD ppsspp-1.16.ebuild 1723 BLAKE2B 40f2524c2b92d0c9dd508d5b9959abe83779ca6639c2d6900ff6b0c9bdfa1649e7bbe0d56ed37701d350a496a770498708854f6ac98dae3c0bbd3d42f804cc19 SHA512 50c8bfc5d4a6b30301a1db318cd225cc0c874e070ab01c3171568eafdfa686dbf8a1fcec65381c844f4b381dec81ffb56bd4c4acc3eea8b695eb0f19e9dbca32 +EBUILD ppsspp-1.17.1.ebuild 1703 BLAKE2B 15795b1db91a3cd95ff885f99a6a9671cef226d2d01246d5b9a0328ce69bc7cc835c7fba70d5a3ff1d8d10afe8542a48dba18686fdd607d644d68b7754985566 SHA512 2005d234bfaf4e224d2c8ca4b6176ae940dde3ee3c1965a27a497ea81519660935135de9646e39e6e035f1a4fb5f63f83b8a841cfcde207cd2044811f03211a0 MISC metadata.xml 526 BLAKE2B 19d0378d36d2b1d81ce404a95d98488b54f4368c72a7397b6d7c9a444edec9c19d146295cfc247a75aca1e1b5d1643161a627b80ea76aa8d43189a5eb14380c2 SHA512 7a8c8a7c05acdc110422d7c38552c8106d1886a672e6bda1212ce9cba737ae5e89e6624010d5bc3149b8da7c061b10295a721c74e7377587ec52ec7be2237855 diff --git a/games-emulation/ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch b/games-emulation/ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch new file mode 100644 index 000000000000..a3003660dd74 --- /dev/null +++ b/games-emulation/ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch @@ -0,0 +1,176 @@ +From a8ae43dfd4f06a48a275a684aafee021e591d75e Mon Sep 17 00:00:00 2001 +From: Andrew Udvare +Date: Sun, 4 Feb 2024 18:26:06 -0500 +Subject: [PATCH] ffmpeg: Improved fix for checking if const AVCodec* is + necessary + +--- + CMakeLists.txt | 21 +++++++++++++++++++++ + Core/AVIDump.cpp | 4 +--- + Core/FFMPEGCompat.h | 8 ++++++++ + Core/HLE/sceAtrac.cpp | 5 +---- + Core/HLE/sceMpeg.cpp | 4 +--- + Core/HW/MediaEngine.cpp | 4 +--- + Core/HW/SimpleAudioDec.cpp | 1 + + Core/HW/SimpleAudioDec.h | 7 +++---- + 8 files changed, 37 insertions(+), 17 deletions(-) + create mode 100644 Core/FFMPEGCompat.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 33570d09c024..f7e5ce1d337c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -953,6 +953,23 @@ if(USE_FFMPEG) + endif() + + find_package(FFmpeg REQUIRED avcodec avformat avutil swresample swscale) ++ # Check if we need to use avcodec_(alloc|free)_frame instead of av_frame_(alloc|free) ++ # Check if we need to use const AVCodec ++ set(CMAKE_REQUIRED_LIBRARIES avcodec;avformat) ++ set(CMAKE_REQUIRED_FLAGS "-pedantic -Wall -Werror -Wno-unused-variable") ++ check_cxx_source_compiles("extern \"C\" { ++ #include ++ #include ++ } ++ static AVCodecContext *s_codec_context = NULL; ++ int main() { ++ const AVCodec *codec = avcodec_find_encoder(s_codec_context->codec_id); ++ return 0; ++ } ++ " HAVE_LIBAVCODEC_CONST_AVCODEC FAIL_REGEX "invalid conversion") ++ ++ # Check if we need to use avcodec_alloc_context3 instead of stream->codec ++ # Check if we need to use av_frame_get_buffer instead of avcodec_default_get_buffer + endif(USE_FFMPEG) + + find_package(ZLIB) +@@ -2024,6 +2041,7 @@ add_library(${CoreLibName} ${CoreLinkType} + Core/ELF/PrxDecrypter.h + Core/ELF/ParamSFO.cpp + Core/ELF/ParamSFO.h ++ Core/FFMPEGCompat.h + Core/FileSystems/tlzrc.cpp + Core/FileSystems/BlobFileSystem.cpp + Core/FileSystems/BlobFileSystem.h +@@ -2358,6 +2376,9 @@ target_compile_features(${CoreLibName} PUBLIC cxx_std_17) + + if(FFmpeg_FOUND) + target_compile_definitions(${CoreLibName} PRIVATE USE_FFMPEG=1) ++ if (HAVE_LIBAVCODEC_CONST_AVCODEC) ++ target_compile_definitions(${CoreLibName} PRIVATE HAVE_LIBAVCODEC_CONST_AVCODEC=1) ++ endif() + set_target_properties(${CoreLibName} PROPERTIES NO_SYSTEM_FROM_IMPORTED true) + target_include_directories(${CoreLibName} BEFORE PUBLIC ${FFmpeg_INCLUDE_avcodec}) + target_link_libraries(${CoreLibName} +diff --git a/Core/AVIDump.cpp b/Core/AVIDump.cpp +index 7c9576d2922b..aa811650314d 100644 +--- a/Core/AVIDump.cpp ++++ b/Core/AVIDump.cpp +@@ -45,9 +45,7 @@ extern "C" { + #define av_frame_free avcodec_free_frame + #endif + +-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) +-#define AVCodec const AVCodec +-#endif ++#include "FFMPEGCompat.h" + + static AVFormatContext *s_format_context = nullptr; + static AVCodecContext *s_codec_context = nullptr; +diff --git a/Core/FFMPEGCompat.h b/Core/FFMPEGCompat.h +new file mode 100644 +index 000000000000..fed3b1c85392 +--- /dev/null ++++ b/Core/FFMPEGCompat.h +@@ -0,0 +1,8 @@ ++#ifndef FFMPEG_COMPAT_H ++#define FFMPEG_COMPAT_H ++ ++#ifdef HAVE_LIBAVCODEC_CONST_AVCODEC ++#define AVCodec const AVCodec ++#endif ++ ++#endif // FFMPEG_COMPAT_H +diff --git a/Core/HLE/sceAtrac.cpp b/Core/HLE/sceAtrac.cpp +index fe0e8a54de6b..f83d9ffdf166 100644 +--- a/Core/HLE/sceAtrac.cpp ++++ b/Core/HLE/sceAtrac.cpp +@@ -129,10 +129,7 @@ extern "C" { + #include "libavcodec/avcodec.h" + #include "libavutil/version.h" + } +- +-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) +-#define AVCodec const AVCodec +-#endif ++#include "Core/FFMPEGCompat.h" + + #endif // USE_FFMPEG + +diff --git a/Core/HLE/sceMpeg.cpp b/Core/HLE/sceMpeg.cpp +index d050d62f3d73..8be78c73e0f8 100644 +--- a/Core/HLE/sceMpeg.cpp ++++ b/Core/HLE/sceMpeg.cpp +@@ -113,9 +113,7 @@ extern "C" { + #include "libswscale/swscale.h" + #include "libavcodec/avcodec.h" + } +-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) +-#define AVCodec const AVCodec +-#endif ++#include "Core/FFMPEGCompat.h" + static AVPixelFormat pmp_want_pix_fmt; + + #endif +diff --git a/Core/HW/MediaEngine.cpp b/Core/HW/MediaEngine.cpp +index 0ed957edfd26..7e8b37d4dc9b 100644 +--- a/Core/HW/MediaEngine.cpp ++++ b/Core/HW/MediaEngine.cpp +@@ -56,9 +56,7 @@ extern "C" { + + #ifdef USE_FFMPEG + +-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) +-#define AVCodec const AVCodec +-#endif ++#include "Core/FFMPEGCompat.h" + + static AVPixelFormat getSwsFormat(int pspFormat) + { +diff --git a/Core/HW/SimpleAudioDec.cpp b/Core/HW/SimpleAudioDec.cpp +index 7994a7f4027a..80397bf6da0a 100644 +--- a/Core/HW/SimpleAudioDec.cpp ++++ b/Core/HW/SimpleAudioDec.cpp +@@ -33,6 +33,7 @@ extern "C" { + #include "libavutil/samplefmt.h" + #include "libavcodec/avcodec.h" + } ++#include "Core/FFMPEGCompat.h" + + #endif // USE_FFMPEG + +diff --git a/Core/HW/SimpleAudioDec.h b/Core/HW/SimpleAudioDec.h +index 52a78bf3b411..9bf2427a4a15 100644 +--- a/Core/HW/SimpleAudioDec.h ++++ b/Core/HW/SimpleAudioDec.h +@@ -33,10 +33,6 @@ extern "C" { + #include "libavutil/version.h" + }; + +-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) +-#define AVCodec const AVCodec +-#endif +- + #endif + + // Wraps FFMPEG for audio decoding in a nice interface. +@@ -90,6 +86,9 @@ class SimpleAudio { + int wanted_resample_freq; // wanted resampling rate/frequency + + AVFrame *frame_; ++#if HAVE_LIBAVCODEC_CONST_AVCODEC // USE_FFMPEG is implied ++ const ++#endif + AVCodec *codec_; + AVCodecContext *codecCtx_; + SwrContext *swrCtx_; diff --git a/games-emulation/ppsspp/files/ppsspp-1.17.1-ccache-18826.patch b/games-emulation/ppsspp/files/ppsspp-1.17.1-ccache-18826.patch new file mode 100644 index 000000000000..af5478f1bf73 --- /dev/null +++ b/games-emulation/ppsspp/files/ppsspp-1.17.1-ccache-18826.patch @@ -0,0 +1,33 @@ +From e1ef901fcc2f0acbdff2671a8e07edab3e473c98 Mon Sep 17 00:00:00 2001 +From: Andrew Udvare +Date: Sun, 4 Feb 2024 18:39:18 -0500 +Subject: [PATCH] Add option to disable ccache detection + +--- + CMakeLists.txt | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bfd5e690353e..33570d09c024 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -116,7 +116,6 @@ if(NOT IOS) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/sdl) + endif() + +-include(ccache) + include(GNUInstallDirs) + + add_definitions(-DASSETS_DIR="${CMAKE_INSTALL_FULL_DATADIR}/ppsspp/assets/") +@@ -173,6 +172,11 @@ option(USE_SYSTEM_ZSTD "Dynamically link against system zstd" ${USE_SYSTEM_ZSTD} + option(USE_SYSTEM_MINIUPNPC "Dynamically link against system miniUPnPc" ${USE_SYSTEM_MINIUPNPC}) + option(USE_ASAN "Use address sanitizer" OFF) + option(USE_UBSAN "Use undefined behaviour sanitizer" OFF) ++option(USE_CCACHE "Use ccache if detected" ON) ++ ++if(USE_CACHE) ++ include(ccache) ++endif() + + if(UNIX AND NOT (APPLE OR ANDROID) AND VULKAN) + if(USING_X11_VULKAN) diff --git a/games-emulation/ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch b/games-emulation/ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch new file mode 100644 index 000000000000..12796b06e890 --- /dev/null +++ b/games-emulation/ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.8) + project(PPSSPP) + enable_testing() + ++include(CheckCXXSourceCompiles) ++ + #This is supposed to work but doesn't! + if(NOT ANDROID) + set(CMAKE_CXX_STANDARD 17) diff --git a/games-emulation/ppsspp/ppsspp-1.17.1.ebuild b/games-emulation/ppsspp/ppsspp-1.17.1.ebuild new file mode 100644 index 000000000000..4f6565ae477c --- /dev/null +++ b/games-emulation/ppsspp/ppsspp-1.17.1.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit python-any-r1 xdg cmake + +DESCRIPTION="A PSP emulator written in C++" +HOMEPAGE="https://www.ppsspp.org/ + https://github.com/hrydgard/ppsspp/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/hrydgard/${PN}.git" +else + SRC_URI="https://github.com/hrydgard/${PN}/releases/download/v${PV}/${P}.tar.xz" + + KEYWORDS="~amd64" +fi + +LICENSE="Apache-2.0 BSD BSD-2 GPL-2 JSON MIT" +SLOT="0" +IUSE="discord qt5 test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/snappy:= + app-arch/zstd:= + dev-libs/libzip:= + media-libs/glew:= + media-libs/libpng:= + media-libs/libsdl2[joystick] + media-video/ffmpeg:0/58.60.60 + sys-libs/zlib:= + virtual/opengl + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5[-gles2-only] + dev-qt/qtmultimedia:5[-gles2-only] + dev-qt/qtopengl:5[-gles2-only] + dev-qt/qtwidgets:5[-gles2-only] + ) + !qt5? ( media-libs/libsdl2[X,opengl,sound,video] ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ${PYTHON_DEPS} +" + +PATCHES=( + "${FILESDIR}/${PN}-1.17.1-avcodec-18825.patch" + "${FILESDIR}/${PN}-1.17.1-ccache-18826.patch" + "${FILESDIR}/${PN}-1.17.1-cmake-cxx.patch" + "${FILESDIR}/${PN}-CMakeLists-flags.patch" +) + +pkg_setup() { + python-any-r1_pkg_setup +} + +src_configure() { + local -a mycmakeargs=( + -DBUILD_SHARED_LIBS=OFF + -DCMAKE_SKIP_RPATH=ON + -DHEADLESS=false + -DUSE_SYSTEM_FFMPEG=ON + -DUSE_SYSTEM_LIBZIP=ON + -DUSE_SYSTEM_SNAPPY=ON + -DUSE_SYSTEM_ZSTD=ON + -DUSE_DISCORD=$(usex discord) + -DUSING_QT_UI=$(usex qt5) + -DUNITTEST=$(usex test) + ) + cmake_src_configure +} + +src_test() { + cmake_src_test -E glslang-testsuite +} -- cgit v1.2.3