From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- games-emulation/dolphin/Manifest | 5 + games-emulation/dolphin/dolphin-5.0.ebuild | 179 ++++++++++++++++++++ games-emulation/dolphin/dolphin-9999.ebuild | 183 +++++++++++++++++++++ .../files/dolphin-5.0-CHAR_WIDTH-collision.patch | 49 ++++++ games-emulation/dolphin/metadata.xml | 22 +++ 5 files changed, 438 insertions(+) create mode 100644 games-emulation/dolphin/Manifest create mode 100644 games-emulation/dolphin/dolphin-5.0.ebuild create mode 100644 games-emulation/dolphin/dolphin-9999.ebuild create mode 100644 games-emulation/dolphin/files/dolphin-5.0-CHAR_WIDTH-collision.patch create mode 100644 games-emulation/dolphin/metadata.xml (limited to 'games-emulation/dolphin') diff --git a/games-emulation/dolphin/Manifest b/games-emulation/dolphin/Manifest new file mode 100644 index 000000000000..41198106b068 --- /dev/null +++ b/games-emulation/dolphin/Manifest @@ -0,0 +1,5 @@ +AUX dolphin-5.0-CHAR_WIDTH-collision.patch 2043 BLAKE2B d29f1f9ff360d79105d7020174bfc5063ad18c544d17056dca055174d8d0c837671f5d04f95de98e140d8634651f869e1a0d9e79b834f0f039ce59900c0696b0 SHA512 47c25a3fd5e6c47e34fe23d5faa71ea316c708fa2bbcbc5136a415fc25a0b207c4d18bfedb2d7c4e2a71394581d1e41fd7d4cca3544d34e3f4a6a84fee360314 +DIST dolphin-5.0.zip 41802909 BLAKE2B 57fb7741e86b8b5194c9ccaf99e60be0202429209ce98d08aec4ed1d6f47fb347d9149509de7ac1e4bb28435cba35e357b87cf5d29efe2867706dbb3b903c886 SHA512 36c4f371e066537331a9a8ec4a17befa278465cdebe258e1cbf1157752ba69bff9c1b8a6e8698bbb650aa257bd48b6b42ee9f61357904b09fd01738af8223d3a +EBUILD dolphin-5.0.ebuild 4538 BLAKE2B 2cdf537c696d52e637b644500fac6b5528f863104f9ffe8b8c30d9bcefd91a6309854ed744f8174766281266b3beac403ebeaa707749fbd03b1750990ec331c1 SHA512 8c3dff0ac08c394f05256b0736209425ec4e4a8d87299bd788e5b1df9ae01aafff61c6b4484b3f064b13d5fc0e999fc434aa162b2d70268d4293b6ab138c80ce +EBUILD dolphin-9999.ebuild 4591 BLAKE2B ef1c50ccf6887336ba8aa86ff7e3e4a8c601d6ff15b54ee2ae9f0001dc5de1dae09a195bc224f8dbac51e261eb5f99dceb372ded1fe78ed81404231c49c6a77e SHA512 569cb7d38d0cc1900a52b0fec1fb1a82071d8923adf9bec703ffd6e935fbe471b9cd314babf2de2d569009d706367d4c93a198bb7e0fc187af3d822da5370635 +MISC metadata.xml 836 BLAKE2B 786a1a9f4e7d76c0111bd9755f784a0bba5607465e2693986c6e2f37e0a32f9ceea84c902464ea47b66f84c183660d5767f569ae933c6b8774d47a15de4c6f30 SHA512 7bdcb2ba2f3a1fa247080a08da495274bea1f61bec1a88e824ebd44fb7e21e74e7ef52855c1c6fba07f12b278df19c0014ba98a5b6ec50f62c08b0ee31e5fc6b diff --git a/games-emulation/dolphin/dolphin-5.0.ebuild b/games-emulation/dolphin/dolphin-5.0.ebuild new file mode 100644 index 000000000000..6110f03b0a04 --- /dev/null +++ b/games-emulation/dolphin/dolphin-5.0.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PLOCALES="ar ca cs da_DK de el en es fa fr hr hu it ja ko ms_MY nb nl pl pt pt_BR ro_RO ru sr sv tr zh_CN zh_TW" +PLOCALE_BACKUP="en" +WX_GTK_VER="3.0" + +inherit cmake-utils desktop gnome2-utils l10n pax-utils toolchain-funcs versionator wxwidgets + +SRC_URI="https://github.com/${PN}-emu/${PN}/archive/${PV}.zip -> ${P}.zip" +KEYWORDS="amd64" + +DESCRIPTION="Gamecube and Wii game emulator" +HOMEPAGE="https://www.dolphin-emu.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="alsa ao bluetooth doc egl +evdev ffmpeg libav llvm log lto openal +pch portaudio profile pulseaudio qt5 sdl upnp +wxwidgets" + +RDEPEND=" + >=media-libs/libsfml-2.1 + >net-libs/enet-1.3.7 + >=net-libs/mbedtls-2.1.1:= + dev-libs/lzo + media-libs/libpng:0= + sys-libs/readline:0= + sys-libs/zlib:= + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrandr + virtual/libusb:1 + virtual/opengl + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + bluetooth? ( net-wireless/bluez ) + egl? ( media-libs/mesa[egl] ) + evdev? ( + dev-libs/libevdev + virtual/udev + ) + ffmpeg? ( + libav? ( media-video/libav:= ) + !libav? ( media-video/ffmpeg:= ) + ) + llvm? ( sys-devel/llvm:* ) + openal? ( + media-libs/openal + media-libs/libsoundtouch + ) + portaudio? ( media-libs/portaudio ) + profile? ( dev-util/oprofile ) + pulseaudio? ( media-sound/pulseaudio ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + sdl? ( media-libs/libsdl2[haptic,joystick] ) + upnp? ( >=net-libs/miniupnpc-1.7 ) + wxwidgets? ( + dev-libs/glib:2 + x11-libs/gtk+:2 + x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] + )" +DEPEND="${RDEPEND} + app-arch/zip + media-libs/freetype + sys-devel/gettext + virtual/pkgconfig" + +PATCHES=( "${FILESDIR}"/${P}-CHAR_WIDTH-collision.patch ) + +src_prepare() { + cmake-utils_src_prepare + + # Remove automatic dependencies to prevent building without flags enabled. + if use !alsa; then + sed -i -e '/include(FindALSA/d' CMakeLists.txt || die + fi + if use !ao; then + sed -i -e '/check_lib(AO/d' CMakeLists.txt || die + fi + if use !bluetooth; then + sed -i -e '/check_lib(BLUEZ/d' CMakeLists.txt || die + fi + if use !llvm; then + sed -i -e '/include(FindLLVM/d' CMakeLists.txt || die + fi + if use !openal; then + sed -i -e '/include(FindOpenAL/d' CMakeLists.txt || die + fi + if use !portaudio; then + sed -i -e '/CMAKE_REQUIRED_LIBRARIES portaudio/d' CMakeLists.txt || die + fi + if use !pulseaudio; then + sed -i -e '/check_lib(PULSEAUDIO/d' CMakeLists.txt || die + fi + + # Remove ALL the bundled libraries, aside from: + # - SOIL: The sources are not public. + # - Bochs-disasm: Don't know what it is. + # - gtest: Their build set up solely relies on the build in gtest. + # - xxhash: Not on the tree. + mv Externals/SOIL . || die + mv Externals/Bochs_disasm . || die + mv Externals/gtest . || die + mv Externals/xxhash . || die + rm -r Externals/* || die "Failed to delete Externals dir." + mv Bochs_disasm Externals || die + mv SOIL Externals || die + mv gtest Externals || die + mv xxhash Externals || die + + remove_locale() { + # Ensure preservation of the backup locale when no valid LINGUA is set + if [[ "${PLOCALE_BACKUP}" == "${1}" ]] && [[ "${PLOCALE_BACKUP}" == "$(l10n_get_locales)" ]]; then + return + else + rm "Languages/po/${1}.po" || die + fi + } + + l10n_find_plocales_changes "Languages/po/" "" '.po' + l10n_for_each_disabled_locale_do remove_locale +} + +src_configure() { + if use wxwidgets; then + need-wxwidgets unicode + fi + + local mycmakeargs=( + -DUSE_SHARED_ENET=ON + $( cmake-utils_use ffmpeg ENCODE_FRAMEDUMPS ) + $( cmake-utils_use log FASTLOG ) + $( cmake-utils_use profile OPROFILING ) + $( cmake-utils_use_disable wxwidgets WX ) + $( cmake-utils_use_enable evdev EVDEV ) + $( cmake-utils_use_enable lto LTO ) + $( cmake-utils_use_enable pch PCH ) + $( cmake-utils_use_enable qt5 QT2 ) + $( cmake-utils_use_enable sdl SDL ) + $( cmake-utils_use_use egl EGL ) + $( cmake-utils_use_use upnp UPNP ) + ) + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + dodoc Readme.md + if use doc; then + dodoc -r docs/ActionReplay docs/DSP docs/WiiMote + fi + + doicon -s 48 Data/dolphin-emu.png + doicon -s scalable Data/dolphin-emu.svg + doicon Data/dolphin-emu.svg +} + +pkg_postinst() { + # Add pax markings for hardened systems + pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu + + if ! use portaudio; then + ewarn "If you want microphone capabilities in dolphin-emu, rebuild with" + ewarn "USE=\"portaudio\"" + fi + + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +} diff --git a/games-emulation/dolphin/dolphin-9999.ebuild b/games-emulation/dolphin/dolphin-9999.ebuild new file mode 100644 index 000000000000..78c1cdbac9d0 --- /dev/null +++ b/games-emulation/dolphin/dolphin-9999.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +PLOCALES="ar ca cs da_DK de el en es fa fr hr hu it ja ko ms_MY nb nl pl pt pt_BR ro_RO ru sr sv tr zh_CN zh_TW" +PLOCALE_BACKUP="en" +WX_GTK_VER="3.0" + +inherit cmake-utils desktop gnome2-utils l10n pax-utils toolchain-funcs versionator wxwidgets + +if [[ ${PV} == *9999 ]] +then + EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin" + inherit git-r3 +else + SRC_URI="https://github.com/${PN}-emu/${PN}/archive/${PV}.zip -> ${P}.zip" + KEYWORDS="~amd64" +fi + +DESCRIPTION="Gamecube and Wii game emulator" +HOMEPAGE="https://www.dolphin-emu.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="alsa ao bluetooth doc egl +evdev ffmpeg libav llvm log lto openal +pch portaudio profile pulseaudio qt5 sdl upnp +wxwidgets" + +RDEPEND=" + >=media-libs/libsfml-2.1 + >net-libs/enet-1.3.7 + >=net-libs/mbedtls-2.1.1:= + dev-libs/lzo + media-libs/libpng:0= + sys-libs/readline:0= + sys-libs/zlib:= + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrandr + virtual/libusb:1 + virtual/opengl + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + bluetooth? ( net-wireless/bluez ) + egl? ( media-libs/mesa[egl] ) + evdev? ( + dev-libs/libevdev + virtual/udev + ) + ffmpeg? ( + libav? ( media-video/libav:= ) + !libav? ( media-video/ffmpeg:= ) + ) + llvm? ( sys-devel/llvm:* ) + openal? ( + media-libs/openal + media-libs/libsoundtouch + ) + portaudio? ( media-libs/portaudio ) + profile? ( dev-util/oprofile ) + pulseaudio? ( media-sound/pulseaudio ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + sdl? ( media-libs/libsdl2[haptic,joystick] ) + upnp? ( >=net-libs/miniupnpc-1.7 ) + wxwidgets? ( + dev-libs/glib:2 + x11-libs/gtk+:2 + x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] + )" +DEPEND="${RDEPEND} + app-arch/zip + media-libs/freetype + sys-devel/gettext + virtual/pkgconfig" + +src_prepare() { + cmake-utils_src_prepare + + # Remove automatic dependencies to prevent building without flags enabled. + if use !alsa; then + sed -i -e '/include(FindALSA/d' CMakeLists.txt || die + fi + if use !ao; then + sed -i -e '/check_lib(AO/d' CMakeLists.txt || die + fi + if use !bluetooth; then + sed -i -e '/check_lib(BLUEZ/d' CMakeLists.txt || die + fi + if use !llvm; then + sed -i -e '/include(FindLLVM/d' CMakeLists.txt || die + fi + if use !openal; then + sed -i -e '/include(FindOpenAL/d' CMakeLists.txt || die + fi + if use !portaudio; then + sed -i -e '/CMAKE_REQUIRED_LIBRARIES portaudio/d' CMakeLists.txt || die + fi + if use !pulseaudio; then + sed -i -e '/check_lib(PULSEAUDIO/d' CMakeLists.txt || die + fi + + # Remove ALL the bundled libraries, aside from: + # - SOIL: The sources are not public. + # - Bochs-disasm: Don't know what it is. + # - gtest: Their build set up solely relies on the build in gtest. + # - xxhash: Not on the tree. + mv Externals/SOIL . || die + mv Externals/Bochs_disasm . || die + mv Externals/gtest . || die + mv Externals/xxhash . || die + rm -r Externals/* || die "Failed to delete Externals dir." + mv Bochs_disasm Externals || die + mv SOIL Externals || die + mv gtest Externals || die + mv xxhash Externals || die + + remove_locale() { + # Ensure preservation of the backup locale when no valid LINGUA is set + if [[ "${PLOCALE_BACKUP}" == "${1}" ]] && [[ "${PLOCALE_BACKUP}" == "$(l10n_get_locales)" ]]; then + return + else + rm "Languages/po/${1}.po" || die + fi + } + + l10n_find_plocales_changes "Languages/po/" "" '.po' + l10n_for_each_disabled_locale_do remove_locale +} + +src_configure() { + if use wxwidgets; then + need-wxwidgets unicode + fi + + local mycmakeargs=( + -DUSE_SHARED_ENET=ON + $( cmake-utils_use ffmpeg ENCODE_FRAMEDUMPS ) + $( cmake-utils_use log FASTLOG ) + $( cmake-utils_use profile OPROFILING ) + $( cmake-utils_use_disable wxwidgets WX ) + $( cmake-utils_use_enable evdev EVDEV ) + $( cmake-utils_use_enable lto LTO ) + $( cmake-utils_use_enable pch PCH ) + $( cmake-utils_use_enable qt5 QT2 ) + $( cmake-utils_use_enable sdl SDL ) + $( cmake-utils_use_use egl EGL ) + $( cmake-utils_use_use upnp UPNP ) + ) + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + dodoc Readme.md + if use doc; then + dodoc -r docs/ActionReplay docs/DSP docs/WiiMote + fi + + doicon -s 48 Data/dolphin-emu.png + doicon -s scalable Data/dolphin-emu.svg + doicon Data/dolphin-emu.svg +} + +pkg_postinst() { + # Add pax markings for hardened systems + pax-mark -m "${EPREFIX}"/usr/games/bin/"${PN}"-emu + + if ! use portaudio; then + ewarn "If you want microphone capabilities in dolphin-emu, rebuild with" + ewarn "USE=\"portaudio\"" + fi + + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +} diff --git a/games-emulation/dolphin/files/dolphin-5.0-CHAR_WIDTH-collision.patch b/games-emulation/dolphin/files/dolphin-5.0-CHAR_WIDTH-collision.patch new file mode 100644 index 000000000000..d6e4c7a2dc0e --- /dev/null +++ b/games-emulation/dolphin/files/dolphin-5.0-CHAR_WIDTH-collision.patch @@ -0,0 +1,49 @@ +Avoid clash with TS 18661-1:2014 macros +https://bugs.gentoo.org/637986 + +--- a/Source/Core/VideoBackends/OGL/RasterFont.cpp ++++ b/Source/Core/VideoBackends/OGL/RasterFont.cpp +@@ -15,7 +15,7 @@ + namespace OGL + { + +-static const int CHAR_WIDTH = 8; ++static const int DOLPHIN_CHAR_WIDTH = 8; + static const int CHAR_HEIGHT = 13; + static const int CHAR_OFFSET = 32; + static const int CHAR_COUNT = 95; +@@ -146,20 +146,20 @@ + glGenTextures(1, &texture); + glActiveTexture(GL_TEXTURE8); + glBindTexture(GL_TEXTURE_2D, texture); +- std::vector texture_data(CHAR_WIDTH * CHAR_COUNT * CHAR_HEIGHT); ++ std::vector texture_data(DOLPHIN_CHAR_WIDTH * CHAR_COUNT * CHAR_HEIGHT); + for (int y = 0; y < CHAR_HEIGHT; y++) + { + for (int c = 0; c < CHAR_COUNT; c++) + { +- for (int x = 0; x < CHAR_WIDTH; x++) ++ for (int x = 0; x < DOLPHIN_CHAR_WIDTH; x++) + { +- bool pixel = (0 != (rasters[c][y] & (1 << (CHAR_WIDTH - x - 1)))); +- texture_data[CHAR_WIDTH * CHAR_COUNT * y + CHAR_WIDTH * c + x] = pixel ? -1 : 0; ++ bool pixel = (0 != (rasters[c][y] & (1 << (DOLPHIN_CHAR_WIDTH - x - 1)))); ++ texture_data[DOLPHIN_CHAR_WIDTH * CHAR_COUNT * y + DOLPHIN_CHAR_WIDTH * c + x] = pixel ? -1 : 0; + } + } + } + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0); +- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, CHAR_WIDTH * CHAR_COUNT, CHAR_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data.data()); ++ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, DOLPHIN_CHAR_WIDTH * CHAR_COUNT, CHAR_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data.data()); + + // generate shader + ProgramShaderCache::CompileShader(s_shader, s_vertexShaderSrc, s_fragmentShaderSrc); +@@ -196,7 +196,7 @@ + std::vector vertices(text.length() * 6 * 4); + + int usage = 0; +- GLfloat delta_x = GLfloat(2 * CHAR_WIDTH) / GLfloat(bbWidth); ++ GLfloat delta_x = GLfloat(2 * DOLPHIN_CHAR_WIDTH) / GLfloat(bbWidth); + GLfloat delta_y = GLfloat(2 * CHAR_HEIGHT) / GLfloat(bbHeight); + GLfloat border_x = 2.0f / GLfloat(bbWidth); + GLfloat border_y = 4.0f / GLfloat(bbHeight); diff --git a/games-emulation/dolphin/metadata.xml b/games-emulation/dolphin/metadata.xml new file mode 100644 index 000000000000..e5f72fa203b6 --- /dev/null +++ b/games-emulation/dolphin/metadata.xml @@ -0,0 +1,22 @@ + + + + + Enable EGL support + Enable evdev input support + Enable the LLVM-based disassembler for debugger mode + Increase logging output + Add support for link-time optimizations. + + +Dolphin is a Gamecube and Wii emulator. Most games run perfectly or with minor +bugs. Games are playable at HD quality, with 1080p and more. + + + twitch153@gentoo.org + Devan Franchini + + + dolphin-emu/dolphin + + -- cgit v1.2.3