public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: profiles/, games-emulation/dolphin/files/, games-emulation/dolphin/, licenses/
@ 2024-08-17 19:24 Michał Górny
  0 siblings, 0 replies; only message in thread
From: Michał Górny @ 2024-08-17 19:24 UTC (permalink / raw
  To: gentoo-commits

commit:     261d61f1693a662bae830afcf504b008d85cc4db
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Sun Aug 11 18:33:41 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 17 19:16:21 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=261d61f1

games-emulation/dolphin: add 2407

Bug: https://bugs.gentoo.org/906079
Closes: https://bugs.gentoo.org/935348
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 games-emulation/dolphin/Manifest                   |   8 +
 games-emulation/dolphin/dolphin-2407.ebuild        | 306 +++++++++++++++++++++
 .../files/dolphin-2407-fix-llvm-build.patch        |  27 ++
 .../dolphin/files/dolphin-2407-libfmt-11-fix.patch | 103 +++++++
 .../dolphin/files/dolphin-2407-minizip.patch       |  18 ++
 games-emulation/dolphin/metadata.xml               |   1 +
 licenses/FatFs                                     |  24 ++
 profiles/package.mask                              |   1 +
 8 files changed, 488 insertions(+)

diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest
index a50d52217ba3..7730538a400e 100644
--- a/games-emulation/dolphin/Manifest
+++ b/games-emulation/dolphin/Manifest
@@ -1,2 +1,10 @@
+DIST Vulkan-Headers-05fe2cc910a68c9ba5dac07db46ef78573acee72.tar.gz 2288519 BLAKE2B bd11ba3ecac3bf0f6df255a4b87556092b9630c85b97cbcc2c0901d5293882da6f996e326cce8f410f8503f9e29454f0a2994c4adceb4565490d435b307d4495 SHA512 3679a087ea024a15b2d30730834345d2af3869ae012bcc5a996eed90558516d16b762010d887b9c762b5177bfc0a21b3bd29dbc4e236e067132623482068b058
+DIST VulkanMemoryAllocator-009ecd192c1289c7529bff248a16cfe896254816.tar.gz 904841 BLAKE2B 64966d40b86197a18f86c9715acb2ea649ea6b69d3de38d9385a8130e35519036eca49b7503886123284be58d5c248dd9d7c5cb16a489c64d385439c382dcd30 SHA512 3a47a4bc81562b96f598f357b803d2219fa167e6eb87779837efa6e85fc6eaff8e1cfbdea0935117a7b3c630cc99944b94e91823eafa8a94d80b2c459f33c317
+DIST dolphin-2407.tar.gz 19773792 BLAKE2B a6de162479d45e6b1cba5444df5abdeafd92773d1e49cc837dfc6c1ab45ed11d7a3f72a582ddb56d0ecc6b550d03c1a02a9389852ba438d8a9235d5ea3285d4b SHA512 8bb8459d8b653708e34d5df184d96ba9705e8c50b00d066862d4012f78b7e71938207979b3bd900dd14c35c3b6c0258bb5c8fad9ba73267188e98d8a2edfb73f
 DIST dolphin-5.0_p20220520.tar.gz 34880474 BLAKE2B 925cddfe8a5d6febced5721bea6ced7c8d2855619f74ca8940b95dc78ea523b4a1083b9ef6efe3561d833b8e9ecb742cb2adf5a1864c06b629b3ecd9e92cc871 SHA512 4993cb10061b142f6627c96493885a5f9d88857d8949c2e8e8d5df5ba6e19b4f98d199da5e641d3d61294884e1cbbe8191bc5b4445c60bf80723046b2524aad5
+DIST implot-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d.tar.gz 137924 BLAKE2B c830275b05a74e8a60a7164f22c01dd9a5a35f9219736785c9cc17830dae809eb8cba65604b0388c3966d7658c9fe71cb9a8468c23d3ed17b7890581a2222cb8 SHA512 ab9935e759f38d19e6f60ed195c22018929ba46fccf783f4486346d7ffb7040b6097bc4c3d3b3577cc91f0c413684e07449a24bebf3db9c937638092c181de92
 DIST mgba-40d4c430fc36caeb7ea32fd39624947ed487d2f2.tar.gz 12921593 BLAKE2B 8c5cf7b9b53f897f6248ad6bc51efafaa8a9d5df137d42d30f4b042b6d1527049644595938626c8cae1385d329bc45bf42db8dcc4424b963a3899e0df53246eb SHA512 26d7b60cbc7415652bb9ca2a42ccd532856867db57bf6dd91d8204551970109b6b9f4a96c42d643ea96b9d071d6aec924d3c1bb79c251c95183b7fb8536456c9
+DIST mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz 14488880 BLAKE2B 5beec2de9a0999a93a4ad704f45246b551824a9ddd576a5b77e731b269fb8f7d311d1c4e2cfb217f34e22a49050498c70e52d714d9c0bb7b4e4d178f49f15c3d SHA512 782d456b7bf827591c774f146a88821b41b3b936faefddb5aee82bb0dd16ca7ad7228a1c331e1e517eac40a71cc4c94cc44bee12560946328c8433e1c6327225
+DIST minizip-ng-3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70.tar.gz 770054 BLAKE2B 7d5b24a5be7134ac17178869883625b28fa80a55f878231ca4156901057db72b20b4d342f8d0bb04a436fcd72d7ccbb0f79adc8503a16e1197a84f3a476da730 SHA512 f76a2cefd7d9ad47f8c3c73b3483b657fab0507605e0b29895eaec759718a65f0d2915ea7022831f3f98493891a1ab4f5035971bf09d4860abbf4cde0b091869
+DIST tinygltf-c5641f2c22d117da7971504591a8f6a41ece488b.tar.gz 5903179 BLAKE2B 0ef4b36cf26f3a5a544d0c739317b8cce041121b1dec58d1d9dbc3bbc892df284d80aa4c45ec1ebc332ba96b151230a5b0dbf95b95aefcf86ee7878c393eda5d SHA512 486bcf32be137dea5746117074dc51bc978290698de7831e1c4bbaa4acb56ed99fc34c38e69878a955b3e5f10f43eab07b0637164f822beae0fddd099aa0c56d
+DIST zlib-ng-ce01b1e41da298334f8214389cc9369540a7560f.tar.gz 2223118 BLAKE2B c79a138c31c74c291ae38a6c4d8983e0884169ced4147d7242d1a766f70777de0368ceba815ac2261bd2543dba55a6106b70f7e040fae4f200863da217f88978 SHA512 73f4e56410ae298ef211ebab52b1a0d3d5bfae91c2de3cd294b56cd0a78ab50e1203b396c7df462f360c1aaaa9392ec5625473d1e9eb084cc64bc813e28d12a1

diff --git a/games-emulation/dolphin/dolphin-2407.ebuild b/games-emulation/dolphin/dolphin-2407.ebuild
new file mode 100644
index 000000000000..bc400baf4651
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-2407.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL=1
+
+inherit cmake llvm-r1 pax-utils xdg-utils
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
+	EGIT_SUBMODULES=(
+		Externals/mGBA/mgba
+		Externals/implot/implot
+		Externals/tinygltf/tinygltf
+		Externals/Vulkan-Headers
+		Externals/VulkanMemoryAllocator
+		Externals/zlib-ng/zlib-ng
+		Externals/minizip-ng/minizip-ng
+	)
+else
+	MGBA_COMMIT=8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51
+	IMPLOT_COMMIT=cc5e1daa5c7f2335a9460ae79c829011dc5cef2d
+	TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b
+	VULKAN_HEADERS_COMMIT=05fe2cc910a68c9ba5dac07db46ef78573acee72
+	VULKANMEMORYALLOCATOR_COMMIT=009ecd192c1289c7529bff248a16cfe896254816
+	ZLIB_NG_COMMIT=ce01b1e41da298334f8214389cc9369540a7560f
+	MINIZIP_NG_COMMIT=3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70
+	SRC_URI="
+		https://github.com/dolphin-emu/dolphin/archive/${PV}.tar.gz
+			-> ${P}.tar.gz
+		https://github.com/epezent/implot/archive/${IMPLOT_COMMIT}.tar.gz
+			-> implot-${IMPLOT_COMMIT}.tar.gz
+		https://github.com/syoyo/tinygltf/archive/${TINYGLTF_COMMIT}.tar.gz
+			-> tinygltf-${TINYGLTF_COMMIT}.tar.gz
+		https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKAN_HEADERS_COMMIT}.tar.gz
+			-> Vulkan-Headers-${VULKAN_HEADERS_COMMIT}.tar.gz
+		https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+			-> VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
+		https://github.com/zlib-ng/zlib-ng/archive/${ZLIB_NG_COMMIT}.tar.gz
+			-> zlib-ng-${ZLIB_NG_COMMIT}.tar.gz
+		https://github.com/zlib-ng/minizip-ng/archive/${MINIZIP_NG_COMMIT}.tar.gz
+			-> minizip-ng-${MINIZIP_NG_COMMIT}.tar.gz
+		mgba? (
+			https://github.com/mgba-emu/mgba/archive/${MGBA_COMMIT}.tar.gz
+				-> mgba-${MGBA_COMMIT}.tar.gz
+		)
+	"
+	KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Gamecube and Wii game emulator"
+HOMEPAGE="https://dolphin-emu.org/"
+
+LICENSE="GPL-2+ BSD BSD-2 LGPL-2.1+ MIT ZLIB"
+SLOT="0"
+IUSE="
+	alsa bluetooth discord-presence doc egl +evdev ffmpeg +gui llvm log mgba
+	profile pulseaudio sdl systemd telemetry test upnp vulkan
+"
+REQUIRED_USE="
+	mgba? ( gui )
+	llvm? ( ${LLVM_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	app-arch/bzip2:=
+	>=app-arch/lz4-1.8:=
+	app-arch/xz-utils
+	>=app-arch/zstd-1.4.0:=
+	dev-libs/hidapi
+	>=dev-libs/libfmt-10.1:=
+	dev-libs/lzo:2
+	dev-libs/pugixml
+	dev-libs/xxhash
+	media-libs/cubeb
+	media-libs/libsfml:=
+	media-libs/libspng
+	>=net-libs/enet-1.3.18:1.3=
+	net-libs/mbedtls:=
+	net-misc/curl
+	x11-libs/libX11
+	x11-libs/libXi
+	x11-libs/libXrandr
+	virtual/libusb:1
+	virtual/opengl
+	alsa? ( media-libs/alsa-lib )
+	bluetooth? ( net-wireless/bluez:= )
+	evdev? (
+		dev-libs/libevdev
+		virtual/udev
+	)
+	ffmpeg? ( media-video/ffmpeg:= )
+	gui? (
+		dev-qt/qtbase:6[gui,widgets]
+		dev-qt/qtsvg:6
+	)
+	llvm? ( $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}=') )
+	profile? ( dev-util/oprofile )
+	pulseaudio? ( media-libs/libpulse )
+	sdl? ( media-libs/libsdl2 )
+	systemd? ( sys-apps/systemd:0= )
+	upnp? ( net-libs/miniupnpc:= )
+"
+DEPEND="
+	${RDEPEND}
+	egl? ( media-libs/libglvnd )
+	test? ( dev-cpp/gtest )
+"
+BDEPEND="
+	sys-devel/gettext
+	virtual/pkgconfig
+"
+
+# vulkan-loader required for vulkan backend which can be selected
+# at runtime.
+RDEPEND+="
+	vulkan? ( media-libs/vulkan-loader )
+"
+
+# [directory]=license
+declare -A KEEP_BUNDLED=(
+	# please keep this list in CMakeLists.txt order
+
+	# TODO: use system libraries
+	[zlib-ng]=ZLIB
+	[minizip-ng]=ZLIB
+
+	[Bochs_disasm]=LGPL-2.1+
+	[cpp-optparse]=MIT
+	[imgui]=MIT
+	[implot]=MIT
+	[glslang]=BSD
+
+	[tinygltf]=MIT
+
+	[FreeSurround]=GPL-2+
+	[soundtouch]=LGPL-2.1+
+
+	# FIXME: discord-rpc not packaged
+	[discord-rpc]=MIT
+
+	[mGBA]=MPL-2.0
+
+	[picojson]=BSD-2
+	[expr]=MIT
+	[rangeset]=ZLIB
+	[FatFs]=FatFs
+	[Vulkan-Headers]="|| ( Apache-2.0 MIT )"
+	[VulkanMemoryAllocator]=MIT
+)
+
+PATCHES=(
+	"${FILESDIR}"/dolphin-2407-libfmt-11-fix.patch
+	"${FILESDIR}"/dolphin-2407-minizip.patch
+	"${FILESDIR}"/dolphin-2407-fix-llvm-build.patch
+)
+
+add_bundled_licenses() {
+	for license in ${KEEP_BUNDLED[@]}; do
+		LICENSE+=" ${license}"
+	done
+}
+add_bundled_licenses
+
+pkg_setup() {
+	use llvm && llvm-r1_pkg_setup
+}
+
+src_prepare() {
+	if [[ ${PV} != *9999 ]]; then
+		mv -T "${WORKDIR}/implot-${IMPLOT_COMMIT}" Externals/implot/implot || die
+		mv -T "${WORKDIR}/tinygltf-${TINYGLTF_COMMIT}" Externals/tinygltf/tinygltf || die
+		mv -T "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADERS_COMMIT}" Externals/Vulkan-Headers || die
+		mv -T "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" Externals/VulkanMemoryAllocator || die
+		mv -T "${WORKDIR}/zlib-ng-${ZLIB_NG_COMMIT}" Externals/zlib-ng/zlib-ng || die
+		mv -T "${WORKDIR}/minizip-ng-${MINIZIP_NG_COMMIT}" Externals/minizip-ng/minizip-ng || die
+		if use mgba; then
+			mv -T "${WORKDIR}/mgba-${MGBA_COMMIT}" Externals/mGBA/mgba || die
+		fi
+	fi
+
+	cmake_src_prepare
+
+	local s remove=()
+	for s in Externals/*; do
+		[[ -f ${s} ]] && continue
+		if ! has "${s#Externals/}" "${!KEEP_BUNDLED[@]}"; then
+			remove+=( "${s}" )
+		fi
+	done
+
+	einfo "removing sources: ${remove[*]}"
+	rm -r "${remove[@]}" || die
+
+	# About 50% compile-time speedup
+	if ! use vulkan; then
+		sed -i -e '/Externals\/glslang/d' CMakeLists.txt || die
+	fi
+
+	# Remove dirty suffix: needed for netplay
+	sed -i -e 's/--dirty/&=""/' CMake/ScmRevGen.cmake || die
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DDSPTOOL=ON
+		-DENABLE_ALSA=$(usex alsa)
+		-DENABLE_ANALYTICS=$(usex telemetry)
+		-DENABLE_AUTOUPDATE=OFF
+		-DENABLE_BLUEZ=$(usex bluetooth)
+		-DENABLE_CLI_TOOL=ON
+		-DENABLE_EGL=$(usex egl)
+		-DENABLE_EVDEV=$(usex evdev)
+		-DENABLE_LLVM=$(usex llvm)
+		-DENABLE_LTO=OFF # just adds -flto, user can do that via flags
+		-DENABLE_NOGUI=$(usex !gui)
+		-DENABLE_PULSEAUDIO=$(usex pulseaudio)
+		-DENABLE_QT=$(usex gui)
+		-DENABLE_SDL=$(usex sdl)
+		-DENABLE_TESTS=$(usex test)
+		-DENABLE_VULKAN=$(usex vulkan)
+		-DENCODE_FRAMEDUMPS=$(usex ffmpeg)
+		-DFASTLOG=$(usex log)
+		-DOPROFILING=$(usex profile)
+		-DSTEAM=OFF
+		-DUSE_DISCORD_PRESENCE=$(usex discord-presence)
+		-DUSE_MGBA=$(usex mgba)
+		-DUSE_RETRO_ACHIEVEMENTS=OFF
+		-DUSE_UPNP=$(usex upnp)
+
+		-DCMAKE_DISABLE_FIND_PACKAGE_SYSTEMD=$(usex !systemd)
+
+		# Use system libraries
+		-DUSE_SYSTEM_FMT=ON
+		-DUSE_SYSTEM_PUGIXML=ON
+		-DUSE_SYSTEM_ENET=ON
+		-DUSE_SYSTEM_XXHASH=ON
+		-DUSE_SYSTEM_BZIP2=ON
+		-DUSE_SYSTEM_LIBLZMA=ON
+		-DUSE_SYSTEM_ZSTD=ON
+		-DUSE_SYSTEM_ZLIB=OFF
+		-DUSE_SYSTEM_MINIZIP=OFF
+		-DUSE_SYSTEM_LZO=ON
+		-DUSE_SYSTEM_LZ4=ON
+		-DUSE_SYSTEM_SPNG=ON
+		-DUSE_SYSTEM_CUBEB=ON
+		-DUSE_SYSTEM_LIBUSB=ON
+		-DUSE_SYSTEM_SFML=ON
+		-DUSE_SYSTEM_MBEDTLS=ON
+		-DUSE_SYSTEM_CURL=ON
+		-DUSE_SYSTEM_ICONV=ON
+		-DUSE_SYSTEM_HIDAPI=ON
+
+		# Use ccache only when user did set FEATURES=ccache (or similar)
+		# not when ccache binary is present in system (automagic).
+		-DCCACHE_BIN=CCACHE_BIN-NOTFOUND
+
+		# Undo cmake.eclass's defaults.
+		# All dolphin's libraries are private
+		# and rely on circular dependency resolution.
+		-DBUILD_SHARED_LIBS=OFF
+
+		# Avoid warning spam around unset variables.
+		-Wno-dev
+	)
+
+	# System installed git shouldnt affect non live builds
+	[[ ${PV} != *9999 ]] && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
+
+	use test && mycmakeargs+=( -DUSE_SYSTEM_GTEST=ON )
+	use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=OFF )
+	use sdl && mycmakeargs+=( -DUSE_SYSTEM_SDL2=ON )
+	use upnp && mycmakeargs+=( -DUSE_SYSTEM_MINIUPNPC=ON )
+
+	cmake_src_configure
+}
+
+src_test() {
+	cmake_build unittests
+}
+
+src_install() {
+	cmake_src_install
+
+	dodoc Readme.md
+	if use doc; then
+		dodoc -r docs/ActionReplay docs/DSP docs/WiiMote
+	fi
+
+	# Add pax markings for hardened systems
+	pax-mark -m "${ED}"/usr/bin/"${PN}"{-emu{,-nogui},-tool}
+}
+
+pkg_postinst() {
+	xdg_desktop_database_update
+	xdg_icon_cache_update
+}
+
+pkg_postrm() {
+	xdg_desktop_database_update
+	xdg_icon_cache_update
+}

diff --git a/games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch b/games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch
new file mode 100644
index 000000000000..2a678d176ae8
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-2407-fix-llvm-build.patch
@@ -0,0 +1,27 @@
+https://github.com/dolphin-emu/dolphin/pull/12986
+https://github.com/dolphin-emu/dolphin/commit/9c5cd817e39b44ff2eb68c75d9405c582207b53b
+
+From 9c5cd817e39b44ff2eb68c75d9405c582207b53b Mon Sep 17 00:00:00 2001
+From: mitaclaw <140017135+mitaclaw@users.noreply.github.com>
+Date: Thu, 8 Aug 2024 09:42:14 -0700
+Subject: [PATCH] CMakeLists: Fix LLVM Usage In UICommon
+
+This compile definition was removed in 68cbd2640d4663fe29e21234dc068769cb9bc673 because it was complicated by changes in 50dc0ffbceebe0f633bd63cd4710a3e2f548d688. Thus, the LLVM disassembler would never be used in UICommon's Disassembler class.
+--- a/Source/Core/UICommon/CMakeLists.txt
++++ b/Source/Core/UICommon/CMakeLists.txt
+@@ -56,6 +56,7 @@ if(ENABLE_LLVM)
+   find_package(LLVM CONFIG)
+   if(LLVM_FOUND)
+     message(STATUS "LLVM found, enabling LLVM support in disassembler")
++    target_compile_definitions(uicommon PRIVATE HAVE_LLVM)
+     # Minimal documentation about LLVM's CMake functions is available here:
+     # https://releases.llvm.org/16.0.0/docs/CMake.html#embedding-llvm-in-your-project
+     # https://groups.google.com/g/llvm-dev/c/YeEVe7HTasQ?pli=1
+@@ -69,6 +70,7 @@ if(ENABLE_LLVM)
+     llvm_config(uicommon USE_SHARED
+       mcdisassembler target ${LLVM_EXPAND_COMPONENTS}
+     )
++    target_include_directories(uicommon PRIVATE ${LLVM_INCLUDE_DIRS})
+   endif()
+ endif()
+ 

diff --git a/games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch b/games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch
new file mode 100644
index 000000000000..bee165ac49fb
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-2407-libfmt-11-fix.patch
@@ -0,0 +1,103 @@
+From f69c099c20afb5ae5262e93208f1a28e39d911f1 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Fri, 9 Aug 2024 08:54:08 +0300
+Subject: [PATCH 1/2] Add support for libfmt-11
+
+fmt::join was moved into fmt/ranges.h
+--- a/Source/Core/Common/StringUtil.cpp
++++ b/Source/Core/Common/StringUtil.cpp
+@@ -22,6 +22,7 @@
+ #include <vector>
+ 
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+ 
+ #include "Common/CommonFuncs.h"
+ #include "Common/CommonPaths.h"
+--- a/Source/Core/Core/HW/EXI/EXI_Device.h
++++ b/Source/Core/Core/HW/EXI/EXI_Device.h
+@@ -111,7 +111,7 @@ struct fmt::formatter<ExpansionInterface::EXIDeviceType>
+   constexpr formatter() : EnumFormatter(names) {}
+ 
+   template <typename FormatContext>
+-  auto format(const ExpansionInterface::EXIDeviceType& e, FormatContext& ctx)
++  auto format(const ExpansionInterface::EXIDeviceType& e, FormatContext& ctx) const
+   {
+     if (e != ExpansionInterface::EXIDeviceType::None)
+     {
+--- a/Source/Core/Core/NetPlayClient.cpp
++++ b/Source/Core/Core/NetPlayClient.cpp
+@@ -17,6 +17,7 @@
+ #include <vector>
+ 
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+ 
+ #include "Common/Assert.h"
+ #include "Common/CommonPaths.h"
+--- a/Source/Core/Core/NetPlayServer.cpp
++++ b/Source/Core/Core/NetPlayServer.cpp
+@@ -18,6 +18,7 @@
+ #include <vector>
+ 
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+ 
+ #include "Common/CommonPaths.h"
+ #include "Common/ENet.h"
+--- a/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
++++ b/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
+@@ -7,6 +7,7 @@
+ #include <cmath>
+ 
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+ 
+ #include <QApplication>
+ #include <QClipboard>
+--- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
++++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
+@@ -25,6 +25,8 @@
+ #include <algorithm>
+ #include <sstream>
+ 
++#include <fmt/ranges.h>
++
+ #include "Common/CommonPaths.h"
+ #include "Common/Config/Config.h"
+ #include "Common/HttpRequest.h"
+--- a/Source/Core/VideoBackends/OGL/OGLConfig.cpp
++++ b/Source/Core/VideoBackends/OGL/OGLConfig.cpp
+@@ -7,6 +7,8 @@
+ #include <string>
+ #include <string_view>
+ 
++#include <fmt/ranges.h>
++
+ #include "Common/Assert.h"
+ #include "Common/GL/GLContext.h"
+ #include "Common/GL/GLExtensions/GLExtensions.h"
+--- a/Source/Core/VideoCommon/VertexLoaderBase.cpp
++++ b/Source/Core/VideoCommon/VertexLoaderBase.cpp
+@@ -11,6 +11,7 @@
+ #include <vector>
+ 
+ #include <fmt/format.h>
++#include <fmt/ranges.h>
+ 
+ #include "Common/Assert.h"
+ #include "Common/BitUtils.h"
+--- a/Source/UnitTests/Common/BitFieldTest.cpp
++++ b/Source/UnitTests/Common/BitFieldTest.cpp
+@@ -1,6 +1,8 @@
+ // Copyright 2014 Dolphin Emulator Project
+ // SPDX-License-Identifier: GPL-2.0-or-later
+ 
++#include <fmt/ranges.h>
++
+ #include <gtest/gtest.h>
+ 
+ #include "Common/BitField.h"
+-- 
+2.45.2
+

diff --git a/games-emulation/dolphin/files/dolphin-2407-minizip.patch b/games-emulation/dolphin/files/dolphin-2407-minizip.patch
new file mode 100644
index 000000000000..90757f795657
--- /dev/null
+++ b/games-emulation/dolphin/files/dolphin-2407-minizip.patch
@@ -0,0 +1,18 @@
+From 18ba49ec1ece5af136a75cb63530f7d1131bf8a7 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Fri, 9 Aug 2024 09:11:21 +0300
+Subject: [PATCH 2/2] minizip
+
+--- a/Externals/minizip-ng/CMakeLists.txt
++++ b/Externals/minizip-ng/CMakeLists.txt
+@@ -1,5 +1,7 @@
+ project(minizip C)
+ 
++include(CheckFunctionExists)
++
+ add_library(minizip STATIC
+   minizip-ng/mz.h
+   minizip-ng/mz_compat.c
+-- 
+2.45.2
+

diff --git a/games-emulation/dolphin/metadata.xml b/games-emulation/dolphin/metadata.xml
index da1b3b2107be..7685ff38cd60 100644
--- a/games-emulation/dolphin/metadata.xml
+++ b/games-emulation/dolphin/metadata.xml
@@ -12,6 +12,7 @@
 	<use>
 		<flag name="discord-presence">Enables Discord Rich Presence, show the current game on Discord</flag>
 		<flag name="evdev">Enable evdev input support</flag>
+		<flag name="llvm">Enables LLVM support, for disassembly</flag>
 		<flag name="log">Increase logging output</flag>
 		<flag name="mgba">Enables GBA controllers emulation using libmgba.</flag>
 	</use>

diff --git a/licenses/FatFs b/licenses/FatFs
new file mode 100644
index 000000000000..a9e57a905ad4
--- /dev/null
+++ b/licenses/FatFs
@@ -0,0 +1,24 @@
+FatFs License
+
+FatFs has being developped as a personal project of the author, ChaN. It is free from the code anyone else wrote at current release. Following code block shows a copy of the FatFs license document that heading the source files.
+
+/*----------------------------------------------------------------------------/
+/  FatFs - Generic FAT Filesystem Module  Rx.xx                               /
+/-----------------------------------------------------------------------------/
+/
+/ Copyright (C) 20xx, ChaN, all right reserved.
+/
+/ FatFs module is an open source software. Redistribution and use of FatFs in
+/ source and binary forms, with or without modification, are permitted provided
+/ that the following condition is met:
+/
+/ 1. Redistributions of source code must retain the above copyright notice,
+/    this condition and the following disclaimer.
+/
+/ This software is provided by the copyright holder and contributors "AS IS"
+/ and any warranties related to this software are DISCLAIMED.
+/ The copyright owner or contributors be NOT LIABLE for any damages caused
+/ by use of this software.
+/----------------------------------------------------------------------------*/
+
+Therefore FatFs license is one of the BSD-style licenses, but there is a significant feature. FatFs is mainly intended for embedded systems. In order to extend the usability for commercial products, the redistributions of FatFs in binary form, such as embedded code, binary library and any forms without source code, do not need to include about FatFs in the documentations. This is equivalent to the 1-clause BSD license. Of course FatFs is compatible with the most of open source software licenses include GNU GPL. When you redistribute the FatFs source code with changes or create a fork, the license can also be changed to GNU GPL, BSD-style license or any open source software license that not conflict with FatFs license.

diff --git a/profiles/package.mask b/profiles/package.mask
index 662de3abfa0e..2a56f0a9b7f4 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -438,6 +438,7 @@ sec-keys/openpgp-keys-jiatan
 # Lots of package breakage as usual for new versions. Masked until most/all
 # reverse dependencies are fixed. Tracker bug is bug #906077.
 >=dev-libs/libfmt-10
+>=games-emulation/dolphin-2407
 
 # Ionen Wolkens <ionen@gentoo.org> (2023-03-30)
 # NVIDIA dropped support for the 390.xx branch in December 2022[1].


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-08-17 19:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-17 19:24 [gentoo-commits] repo/gentoo:master commit in: profiles/, games-emulation/dolphin/files/, games-emulation/dolphin/, licenses/ Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox