From 6a9ad5e1eab254e270c512db99edb7180376ba51 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 2 Nov 2025 23:56:25 +0100 Subject: [PATCH] [docs] full Gentoo caveats/deps (#2939) Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2939 Reviewed-by: Lizzie Reviewed-by: Caio Oliveira --- docs/Caveats.md | 32 ++++++++++++++++++-------------- docs/Deps.md | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 57 insertions(+), 15 deletions(-) diff --git a/docs/Caveats.md b/docs/Caveats.md index 7c54f1f106..419e098a57 100644 --- a/docs/Caveats.md +++ b/docs/Caveats.md @@ -1,14 +1,16 @@ # Caveats -- [Arch Linux](#arch-linux) -- [Gentoo Linux](#gentoo-linux) -- [macOS](#macos) -- [Solaris](#solaris) -- [HaikuOS](#haikuos) -- [OpenBSD](#openbsd) -- [FreeBSD](#freebsd) -- [NetBSD](#netbsd) +- [Caveats](#caveats) + - [Arch Linux](#arch-linux) + - [Gentoo Linux](#gentoo-linux) + - [macOS](#macos) + - [Solaris](#solaris) + - [HaikuOS](#haikuos) + - [OpenBSD](#openbsd) + - [FreeBSD](#freebsd) + - [NetBSD](#netbsd) + - [MSYS2](#msys2) ## Arch Linux @@ -17,7 +19,9 @@ Eden is also available as an [AUR package](https://aur.archlinux.org/packages/ed ## Gentoo Linux -Enable the GURU repository to install [`games-emulation/eden`](https://gitweb.gentoo.org/repo/proj/guru.git/tree/games-emulation/eden). This repository also contains some additional dependencies, such as mcl, sirit, oaknut, etc. +[`games-emulation/eden`](https://gitweb.gentoo.org/repo/proj/guru.git/tree/games-emulation/eden) is available in the GURU. This repository also contains some additional dependencies, such as mcl, sirit, oaknut, etc. + +If you're having issues with building, always consult that ebuild. ## macOS @@ -121,7 +125,7 @@ export PATH="/${MSYS_TOOLCHAIN}/bin:$PATH" # grab deps of a dll or exe and place them in the current dir deps() { # string parsing is fun - objdump -p "$1" | grep -e ".DLL Name:" | cut -d" " -f3 | while read -r dll; do + objdump -p "$1" | awk '/DLL Name:/ {print $3}' | while read -r dll; do [ -z "$dll" ] && continue # bin directory is used for DLLs, so we can do a quick "hack" @@ -130,8 +134,8 @@ deps() { [ -z "$dllpath" ] && continue - # explicitly include system32/syswow64 deps - # these aren't needed to be bundled, as all systems include them + # explicitly exclude system32/syswow64 deps + # these aren't needed to be bundled, as all systems already have them case "$dllpath" in *System32* | *SysWOW64*) continue ;; esac @@ -152,8 +156,8 @@ deps() { deps eden.exe # deploy Qt plugins and such -windeployqt6 --release --no-compiler-runtime \ - --no-opengl-sw --no-system-dxc-compiler --no-system-d3d-compiler eden.exe +windeployqt6 --no-compiler-runtime --no-opengl-sw --no-system-dxc-compiler \ + --no-system-d3d-compiler eden.exe # grab deps for Qt plugins find ./*/ -name "*.dll" | while read -r dll; do deps "$dll"; done diff --git a/docs/Deps.md b/docs/Deps.md index 12cdf1e6d8..f66bf05e90 100644 --- a/docs/Deps.md +++ b/docs/Deps.md @@ -93,7 +93,45 @@ Click on the arrows to expand. GURU must be enabled: ``` -sudo +sudo emerge -a app-eselect/eselect-repository +sudo eselect repository enable guru +sudo emaint sync -r guru +``` + +Now, install all deps: + +```sh +sudo emerge -a \ + app-arch/lz4 app-arch/zstd app-arch/unzip \ + dev-libs/libfmt dev-libs/libusb dev-libs/mcl dev-libs/sirit \ + dev-libs/unordered_dense dev-libs/boost dev-libs/openssl dev-libs/discord-rpc \ + dev-util/spirv-tools dev-util/spirv-headers dev-util/vulkan-headers \ + dev-util/vulkan-utility-libraries dev-util/glslang \ + media-gfx/renderdoc media-libs/libva media-libs/opus media-video/ffmpeg \ + media-libs/VulkanMemoryAllocator media-libs/libsdl2 media-libs/cubeb \ + net-libs/enet net-libs/mbedtls \ + sys-libs/zlib \ + dev-cpp/nlohmann_json dev-cpp/simpleini dev-cpp/cpp-httplib dev-cpp/cpp-jwt \ + games-util/gamemode \ + net-wireless/wireless-tools \ + dev-qt/qtbase:6 dev-libs/quazip \ + virtual/pkgconfig +``` + +- On `amd64`, also add `dev-libs/xbyak` +- On `riscv64`, also add `dev-libs/biscuit` (currently unavailable) +- On `aarch64`, also add `dev-libs/oaknut` +- If tests are enabled, also add `dev-libs/oaknut` and `dev-cpp/catch` + +Required USE flags: +- `dev-qt/qtbase network concurrent dbus gui widgets` +- `dev-libs/quazip qt6` +- `net-libs/mbedtls cmac` +- `media-libs/libsdl2 haptic joystick sound video` +- `dev-cpp/cpp-httplib ssl` + +[Caveats](./Caveats.md#gentoo-linux) +