* [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 +++++++++++++++++++++
| 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"
+}
--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