commit:     fb8d0e908fe84b832efdfd9db795137a9d519353
Author:     Thibaud CANALE <thican <AT> thican <DOT> net>
AuthorDate: Wed Jun  4 18:39:00 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun  7 16:32:27 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb8d0e90

games-emulation/dolphin: add 2506

Closes: https://bugs.gentoo.org/952952
Closes: https://bugs.gentoo.org/957145
Bug: https://bugs.gentoo.org/956364
Signed-off-by: Thibaud CANALE <thican <AT> thican.net>
Part-of: https://github.com/gentoo/gentoo/pull/42449
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 games-emulation/dolphin/Manifest            |   1 +
 games-emulation/dolphin/dolphin-2506.ebuild | 301 ++++++++++++++++++++++++++++
 2 files changed, 302 insertions(+)

diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest
index e7850afa6da0..e3a62e117d5f 100644
--- a/games-emulation/dolphin/Manifest
+++ b/games-emulation/dolphin/Manifest
@@ -1,6 +1,7 @@
 DIST Vulkan-Headers-39f924b810e561fd86b2558b6711ca68d4363f68.tar.gz 2497345 
BLAKE2B 
66c276e4ecb6f648fb0ba7f211edda51d6ef8c439b88abdafd0bb33a7aa255e9189e88ef2a40179e9ab8433c82f98cbb40a8aaadbbd6a6e72c7a838ad68d07ae
 SHA512 
2d722e32e3c5a217a62d0583fd1597fcf5e05c7092f0c629f54025ae8fdb22b12dba375d1aeeeb90e4a69507e254f33aebe435bf8f058f55a5ed3f5e6d351d6f
 DIST VulkanMemoryAllocator-3bab6924988e5f19bf36586a496156cf72f70d9f.tar.gz 
937902 BLAKE2B 
d4c9d002ab787045e4d117237c3f7d031ec4dae514e958881529c6dc11cc6105dd57a26f214791f8e0943e2cfa105f90e99ee958b97c1c386ef44fcaad6b7d33
 SHA512 
6e2935ce6fbafc2cc8c5a34bf3eaa5dc2e8f65c97c886cfa57da0b45ca83bc8ade4429a7556ce6292af9aeb947d69231b50ae64a55a281c304176e8ea1cd2098
 DIST dolphin-2503.tar.gz 20148047 BLAKE2B 
3b41fd126f3b61d2bb6e6232b3009901a6ec1b8a21e2df6932205aa1a4dc63441aff0fd60ecba1683350bb6b49c42d97e33d22c96ac150ce518eb8d79355693b
 SHA512 
dd61676b2200d4f3a6b053b563f9687740bddc043733240ae0bf44f037b782ba292465c55a63930c8119f2e515476947f90b9e0348208881ecbd88c5def52e0c
+DIST dolphin-2506.tar.gz 19891520 BLAKE2B 
ffff679899d70322b5b02f2b045cd063123a9c94fa65641af9597d41cd88849c971179f0131d4db8d4ce8090e70052cf6bbd2b19e720794adb1977b8ed48037e
 SHA512 
7f2a053e18f53c535c9de6e67a098d92e8ffaa240f8cc44ce5b0db19e506373f31eefecfe7d215d69e054ed0254f92ce96f73f2cb737df86d2b55cdc4fdc4ac3
 DIST implot-18c72431f8265e2b0b5378a3a73d8a883b2175ff.tar.gz 138121 BLAKE2B 
481fe2b4ebd1ab3554465aff07b2c2e85f2db033de1ac69b95bcf56d269fcf01d8a0f951ad45ddcc0e192f1cc6cac3478633f006f403b8e930350891945ae87f
 SHA512 
9cb2581a4e8d844914606f55a667afcfb31374973b0035b4d81488253e350df67439e97b46b236324c2a1e01146e6a191ad94d70823a3888c97e9380715272fa
 DIST mgba-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51.tar.gz 14488880 BLAKE2B 
5beec2de9a0999a93a4ad704f45246b551824a9ddd576a5b77e731b269fb8f7d311d1c4e2cfb217f34e22a49050498c70e52d714d9c0bb7b4e4d178f49f15c3d
 SHA512 
782d456b7bf827591c774f146a88821b41b3b936faefddb5aee82bb0dd16ca7ad7228a1c331e1e517eac40a71cc4c94cc44bee12560946328c8433e1c6327225
 DIST minizip-ng-55db144e03027b43263e5ebcb599bf0878ba58de.tar.gz 772757 BLAKE2B 
853a252d2a8f8c0668804cf961626413aaf89a7eb85b27142860e379e933a54c0d847d976b007071636461b29dd85d6b910d44a6c140581b983b59b14bc4fd9c
 SHA512 
88d1222886a3b5cd3ca1aff7b12902d1d19462c446ef39a092a56bb91b5889956afcce047b4227c79a50a95d9275bd0a23f5cd6cbef76478b6e21bbf86dd486b

diff --git a/games-emulation/dolphin/dolphin-2506.ebuild 
b/games-emulation/dolphin/dolphin-2506.ebuild
new file mode 100644
index 000000000000..c32a91153892
--- /dev/null
+++ b/games-emulation/dolphin/dolphin-2506.ebuild
@@ -0,0 +1,301 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 18 19 )
+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=18c72431f8265e2b0b5378a3a73d8a883b2175ff
+       TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b
+       VULKAN_HEADERS_COMMIT=39f924b810e561fd86b2558b6711ca68d4363f68
+       VULKANMEMORYALLOCATOR_COMMIT=3bab6924988e5f19bf36586a496156cf72f70d9f
+       ZLIB_NG_COMMIT=ce01b1e41da298334f8214389cc9369540a7560f
+       MINIZIP_NG_COMMIT=55db144e03027b43263e5ebcb599bf0878ba58de
+       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 ~arm64"
+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-3.0:=
+       media-libs/libspng
+       >=net-libs/enet-1.3.18:1.3=
+       net-libs/mbedtls:0=
+       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/libudev
+       )
+       ffmpeg? ( media-video/ffmpeg:= )
+       gui? (
+               dev-qt/qtbase:6[X,gui,widgets]
+               dev-qt/qtsvg:6
+       )
+       llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}=') )
+       profile? ( dev-util/oprofile )
+       pulseaudio? ( media-libs/libpulse )
+       sdl? ( >=media-libs/libsdl2-2.30.9 )
+       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
+       # bug #873952
+       # https://github.com/dolphin-emu/dolphin/pull/13089
+       [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-minizip.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
+
+       # 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_CUBEB=ON
+               -DENABLE_EGL=$(usex egl)
+               -DENABLE_EVDEV=$(usex evdev)
+               -DENABLE_HWDB=$(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)
+               -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_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
+}

Reply via email to