public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/proj/guru:dev commit in: games-emulation/eden/files/, games-emulation/eden/
@ 2025-08-02 10:42 Pavel Sobolev
  0 siblings, 0 replies; only message in thread
From: Pavel Sobolev @ 2025-08-02 10:42 UTC (permalink / raw
  To: gentoo-commits

commit:     2ee8d3cdcc28cf690a08153a57ae35e779da3225
Author:     Pavel Sobolev <contact <AT> paveloom <DOT> dev>
AuthorDate: Sat Aug  2 07:31:50 2025 +0000
Commit:     Pavel Sobolev <contact <AT> paveloom <DOT> dev>
CommitDate: Sat Aug  2 10:41:05 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=2ee8d3cd

games-emulation/eden: new package, add 0.0.3_rc2

Signed-off-by: Pavel Sobolev <contact <AT> paveloom.dev>

 games-emulation/eden/Manifest                      |   1 +
 games-emulation/eden/eden-0.0.3_rc2.ebuild         | 166 +++++++++++++++++++++
 ...-add-a-missing-include-for-the-log-header.patch |  15 ++
 ...finition-of-create_target_directory_group.patch |  59 ++++++++
 ...0.0.3_rc2-relax-the-dependency-on-httplib.patch |  16 ++
 ...en-0.0.3_rc2-use-the-system-Boost-library.patch |  16 ++
 ...n-0.0.3_rc2-use-the-system-QuaZip-library.patch |  22 +++
 ...-0.0.3_rc2-use-the-system-mbedtls-library.patch |  33 ++++
 ...en-0.0.3_rc2-use-the-system-sirit-library.patch |  16 ++
 games-emulation/eden/metadata.xml                  |  20 +++
 10 files changed, 364 insertions(+)

diff --git a/games-emulation/eden/Manifest b/games-emulation/eden/Manifest
new file mode 100644
index 0000000000..fde27891c7
--- /dev/null
+++ b/games-emulation/eden/Manifest
@@ -0,0 +1 @@
+DIST eden-0.0.3_rc2.tar.gz 33625981 BLAKE2B c570dcf78e2cfd00e43ef55f0586c95313b66a8f8026c770060f103dfbc8b995232f2fd6077654ad0b5e48546d63bfed90b2021992a26f38816cafde82f8627e SHA512 c69f9693888251d2d9e23fcd38519a33a0ea350cae913b31ff67342fab4e83c404547753fb62004d01bade4f2c132c448298bbfe30311977aa67ef8bb982abf5

diff --git a/games-emulation/eden/eden-0.0.3_rc2.ebuild b/games-emulation/eden/eden-0.0.3_rc2.ebuild
new file mode 100644
index 0000000000..87cce2410c
--- /dev/null
+++ b/games-emulation/eden/eden-0.0.3_rc2.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg
+
+DESCRIPTION="Nintendo Switch Emulator"
+HOMEPAGE="https://eden-emu.dev"
+SRC_URI="https://git.eden-emu.dev/eden-emu/eden/archive/v${PV/_/-}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="camera cubeb discord gui lto sdl ssl test web-applet wifi"
+REQUIRED_USE="!gui? ( !camera !discord !web-applet )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	app-arch/lz4
+	app-arch/zstd
+	dev-cpp/cpp-httplib:=[ssl]
+	dev-libs/libfmt:=
+	dev-libs/libusb
+	dev-libs/sirit
+	dev-util/spirv-tools
+	llvm-core/llvm
+	media-libs/libva
+	media-libs/opus
+	media-video/ffmpeg
+	net-libs/enet
+	net-libs/mbedtls:0[cmac]
+	sys-libs/zlib
+
+	amd64? ( dev-libs/dynarmic )
+	arm64? ( dev-libs/dynarmic )
+
+	camera? ( dev-qt/qtmultimedia:6 )
+	cubeb? ( media-libs/cubeb )
+	discord? (
+		dev-libs/discord-rpc
+		dev-qt/qtbase:6[network]
+	)
+	gui? (
+		dev-libs/quazip[qt6]
+		dev-qt/qtbase:6[concurrent,dbus,widgets]
+	)
+	sdl? ( media-libs/libsdl2 )
+	ssl? ( dev-libs/openssl:= )
+	web-applet? ( dev-qt/qtwebengine:6[widgets] )
+	wifi? ( net-wireless/wireless-tools )
+"
+DEPEND="
+	${RDEPEND}
+	dev-cpp/cpp-jwt
+	dev-cpp/nlohmann_json
+	dev-cpp/simpleini
+	dev-libs/boost:=[context]
+	dev-util/vulkan-headers
+	dev-util/vulkan-utility-libraries
+	games-util/gamemode
+	media-gfx/renderdoc
+	media-libs/VulkanMemoryAllocator
+	sys-libs/timezone-data
+
+	amd64? ( dev-libs/xbyak )
+	arm64? ( dev-libs/oaknut )
+	x86? ( dev-libs/xbyak )
+"
+BDEPEND="
+	dev-build/make
+	dev-vcs/git
+	sys-apps/coreutils
+	virtual/pkgconfig
+	test? ( dev-cpp/catch )
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-0.0.3_rc2-add-a-missing-include-for-the-log-header.patch"
+	"${FILESDIR}/${PN}-0.0.3_rc2-move-the-definition-of-create_target_directory_group.patch"
+	"${FILESDIR}/${PN}-0.0.3_rc2-relax-the-dependency-on-httplib.patch"
+	"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-Boost-library.patch"
+	"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-mbedtls-library.patch"
+	"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-QuaZip-library.patch"
+	"${FILESDIR}/${PN}-0.0.3_rc2-use-the-system-sirit-library.patch"
+)
+
+# [directory]=license
+declare -A KEEP_BUNDLED=(
+	# Generated or copied files for internal usage
+	[bc_decoder]=MPL-2.0
+	[cmake-modules]=Boost-1.0
+	[FidelityFX-FSR]=MIT
+	[glad]=GPL-2+
+	[microprofile]=public-domain
+	[nx_tzdb]="GPL-2+ MIT"
+	[stb]="MIT public-domain"
+	[tz]=BSD-2
+)
+
+add_bundled_licenses() {
+	for license in "${KEEP_BUNDLED[@]}"; do
+		if [[ -n "$license" ]]; then
+			LICENSE+=" ${license}"
+		fi
+	done
+}
+add_bundled_licenses
+
+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
+
+	cmake_src_prepare
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DYUZU_CHECK_SUBMODULES=no
+		-DYUZU_ENABLE_PORTABLE=no
+		-DYUZU_USE_BUNDLED_FFMPEG=no
+		-DYUZU_USE_BUNDLED_SDL2=no
+		-DYUZU_USE_EXTERNAL_SDL2=no
+		-DYUZU_USE_EXTERNAL_VULKAN_HEADERS=no
+		-DYUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS=no
+		-DYUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES=no
+		-DYUZU_USE_PRECOMPILED_HEADERS=no
+		-DTZDB2NX_VERSION=gentoo
+		-DTZDB2NX_ZONEINFO_DIR=/usr/share/zoneinfo
+
+		-DENABLE_CUBEB=$(usex cubeb)
+		-DENABLE_OPENSSL=$(usex ssl)
+		-DENABLE_QT=$(usex gui)
+		-DENABLE_SDL2=$(usex sdl)
+		-DENABLE_WIFI_SCAN=$(usex wifi)
+		-DUSE_DISCORD_PRESENCE=$(usex discord)
+		-DYUZU_ENABLE_LTO=$(usex lto)
+		-DYUZU_TESTS=$(usex test)
+		-DYUZU_USE_QT_MULTIMEDIA=$(usex camera)
+		-DYUZU_USE_QT_WEB_ENGINE=$(usex web-applet)
+
+		# Support for this flag is broken by upstream
+		-DENABLE_WEB_SERVICE=yes
+
+		-Wno-dev
+	)
+
+	cmake_src_configure
+}
+
+src_test() {
+	cd "${BUILD_DIR}" || die
+
+	# See https://git.eden-emu.dev/eden-emu/eden/issues/126
+	./bin/tests "~Fibers::InterExchange" "~RingBuffer: Threaded Test"
+}

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-add-a-missing-include-for-the-log-header.patch b/games-emulation/eden/files/eden-0.0.3_rc2-add-a-missing-include-for-the-log-header.patch
new file mode 100644
index 0000000000..6931a0ec60
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-add-a-missing-include-for-the-log-header.patch
@@ -0,0 +1,15 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Add a missing `include` for the log header.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/src/core/hle/service/nvnflinger/hos_binder_driver_server.cpp
++++ b/src/core/hle/service/nvnflinger/hos_binder_driver_server.cpp
+@@ -4,6 +4,7 @@
+ #include <mutex>
+ 
+ #include "common/common_types.h"
++#include "common/logging/log.h"
+ #include "core/hle/service/nvnflinger/hos_binder_driver_server.h"
+ 
+ namespace Service::Nvnflinger {

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-move-the-definition-of-create_target_directory_group.patch b/games-emulation/eden/files/eden-0.0.3_rc2-move-the-definition-of-create_target_directory_group.patch
new file mode 100644
index 0000000000..dabbe6f42b
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-move-the-definition-of-create_target_directory_group.patch
@@ -0,0 +1,59 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Move the definition of `create_target_directory_groups`.
+
+This way, the function can be used by the external projects.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -455,6 +455,24 @@ set(FFmpeg_COMPONENTS
+     avutil
+     swscale)
+ 
++# This function should be passed a list of all files in a target. It will automatically generate
++# file groups following the directory hierarchy, so that the layout of the files in IDEs matches the
++# one in the filesystem.
++function(create_target_directory_groups target_name)
++    # Place any files that aren't in the source list in a separate group so that they don't get in
++    # the way.
++    source_group("Other Files" REGULAR_EXPRESSION ".")
++
++    get_target_property(target_sources "${target_name}" SOURCES)
++
++    foreach(file_name IN LISTS target_sources)
++        get_filename_component(dir_name "${file_name}" PATH)
++        # Group names use '\' as a separator even though the entire rest of CMake uses '/'...
++        string(REPLACE "/" "\\" group_name "${dir_name}")
++        source_group("${group_name}" FILES "${file_name}")
++    endforeach()
++endfunction()
++
+ add_subdirectory(externals)
+ 
+ if (ENABLE_QT)
+@@ -628,24 +646,6 @@ endif()
+ # Include source code
+ # ===================
+ 
+-# This function should be passed a list of all files in a target. It will automatically generate
+-# file groups following the directory hierarchy, so that the layout of the files in IDEs matches the
+-# one in the filesystem.
+-function(create_target_directory_groups target_name)
+-    # Place any files that aren't in the source list in a separate group so that they don't get in
+-    # the way.
+-    source_group("Other Files" REGULAR_EXPRESSION ".")
+-
+-    get_target_property(target_sources "${target_name}" SOURCES)
+-
+-    foreach(file_name IN LISTS target_sources)
+-        get_filename_component(dir_name "${file_name}" PATH)
+-        # Group names use '\' as a separator even though the entire rest of CMake uses '/'...
+-        string(REPLACE "/" "\\" group_name "${dir_name}")
+-        source_group("${group_name}" FILES "${file_name}")
+-    endforeach()
+-endfunction()
+-
+ # Adjustments for MSVC + Ninja
+ if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
+     add_compile_options(

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-relax-the-dependency-on-httplib.patch b/games-emulation/eden/files/eden-0.0.3_rc2-relax-the-dependency-on-httplib.patch
new file mode 100644
index 0000000000..d3ec6f1d60
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-relax-the-dependency-on-httplib.patch
@@ -0,0 +1,16 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Relax the dependency on `httplib`.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -404,7 +404,7 @@ if (ENABLE_WEB_SERVICE)
+ endif()
+ 
+ if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER)
+-    find_package(httplib 0.12 MODULE COMPONENTS OpenSSL)
++    find_package(httplib MODULE COMPONENTS OpenSSL REQUIRED)
+ endif()
+ 
+ if (YUZU_TESTS)

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-Boost-library.patch b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-Boost-library.patch
new file mode 100644
index 0000000000..1f986652fa
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-Boost-library.patch
@@ -0,0 +1,16 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Use the system `Boost` library.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/externals/CMakeLists.txt
++++ b/externals/CMakeLists.txt
+@@ -161,7 +161,7 @@ if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
+ endif()
+ 
+ # Boost headers
+-add_subdirectory(boost-headers)
++find_package(Boost COMPONENTS context REQUIRED GLOBAL)
+ 
+ # TZDB (Time Zone Database)
+ add_subdirectory(nx_tzdb)

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-QuaZip-library.patch b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-QuaZip-library.patch
new file mode 100644
index 0000000000..e0131c621e
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-QuaZip-library.patch
@@ -0,0 +1,22 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Use the system `QuaZip` library.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/src/yuzu/externals/CMakeLists.txt
++++ b/src/yuzu/externals/CMakeLists.txt
+@@ -5,13 +5,4 @@ set(BUILD_TESTING OFF)
+ set(BUILD_SHARED_LIBS OFF)
+ 
+ # QuaZip
+-include(CPM)
+-set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm)
+-set(CPM_USE_LOCAL_PACKAGES ON)
+-
+-CPMAddPackage(
+-    NAME QuaZip-Qt6
+-    VERSION 1.3
+-    GIT_REPOSITORY "https://github.com/crueter/quazip-qt6.git"
+-    GIT_TAG v1.5-qt6
+-)
++find_package(QuaZip-Qt6 REQUIRED)

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-mbedtls-library.patch b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-mbedtls-library.patch
new file mode 100644
index 0000000000..5ef7617cd4
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-mbedtls-library.patch
@@ -0,0 +1,33 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Use the system `mbedtls` library.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/externals/CMakeLists.txt
++++ b/externals/CMakeLists.txt
+@@ -40,13 +40,7 @@ endif()
+ add_subdirectory(glad)
+ 
+ # mbedtls
+-add_subdirectory(mbedtls)
+-target_include_directories(mbedtls PUBLIC ./mbedtls/include)
+-if (NOT MSVC)
+-    target_compile_options(mbedcrypto PRIVATE
+-        -Wno-unused-but-set-variable
+-        -Wno-string-concatenation)
+-endif()
++add_library(mbedtls SHARED IMPORTED)
+ 
+ # MicroProfile
+ add_library(microprofile INTERFACE)
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -1185,7 +1185,7 @@ else()
+ endif()
+ 
+ target_link_libraries(core PUBLIC common PRIVATE audio_core hid_core network video_core nx_tzdb tz)
+-target_link_libraries(core PUBLIC Boost::headers PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls RenderDoc::API)
++target_link_libraries(core PUBLIC Boost::headers PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls mbedcrypto RenderDoc::API)
+ if (MINGW)
+     target_link_libraries(core PRIVATE ${MSWSOCK_LIBRARY})
+ endif()

diff --git a/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-sirit-library.patch b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-sirit-library.patch
new file mode 100644
index 0000000000..7d3638126d
--- /dev/null
+++ b/games-emulation/eden/files/eden-0.0.3_rc2-use-the-system-sirit-library.patch
@@ -0,0 +1,16 @@
+From: Pavel Sobolev <contact@paveloom.dev>
+Subject: [PATCH] Use the system `sirit` library.
+
+Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
+
+--- a/externals/CMakeLists.txt
++++ b/externals/CMakeLists.txt
+@@ -110,7 +110,7 @@ if (USE_DISCORD_PRESENCE AND NOT TARGET DiscordRPC::discord-rpc)
+ endif()
+ 
+ # Sirit
+-add_subdirectory(sirit)
++add_library(sirit SHARED IMPORTED)
+ 
+ # httplib
+ if ((ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER) AND NOT TARGET httplib::httplib)

diff --git a/games-emulation/eden/metadata.xml b/games-emulation/eden/metadata.xml
new file mode 100644
index 0000000000..620064929e
--- /dev/null
+++ b/games-emulation/eden/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="person">
+    <email>contact@paveloom.dev</email>
+    <name>Pavel Sobolev</name>
+  </maintainer>
+  <use>
+    <flag name="camera">Enable camera support</flag>
+    <flag name="cubeb">Enable the cubeb audio backend</flag>
+    <flag name="discord">Enable Discord Rich Presence</flag>
+    <flag name="sdl">Enable the SDL2 frontend</flag>
+    <flag name="ssl">Enable OpenSSL backend for ISslConnection</flag>
+    <flag name="web-applet">Enable web applet support</flag>
+    <flag name="wifi">Enable Wi-Fi scanning</flag>
+  </use>
+  <upstream>
+    <bugs-to>https://git.eden-emu.dev/eden-emu/eden/issues</bugs-to>
+  </upstream>
+</pkgmetadata>


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

only message in thread, other threads:[~2025-08-02 10:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-02 10:42 [gentoo-commits] repo/proj/guru:dev commit in: games-emulation/eden/files/, games-emulation/eden/ Pavel Sobolev

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