summaryrefslogtreecommitdiff
path: root/dev-games
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-07-07 16:17:07 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-07-07 16:17:07 +0100
commite3184eb75ff6935e35462bfd59788feb985259e1 (patch)
tree81d0ebe82168f40346d74544320814ea0942427f /dev-games
parent2c9fab2a3468abc6862cb3115c9ff63aa266bf57 (diff)
gentoo auto-resync : 07:07:2023 - 16:17:07
Diffstat (limited to 'dev-games')
-rw-r--r--dev-games/Manifest.gzbin6224 -> 6228 bytes
-rw-r--r--dev-games/godot/Manifest3
-rw-r--r--dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch77
-rw-r--r--dev-games/godot/godot-4.1.ebuild230
4 files changed, 310 insertions, 0 deletions
diff --git a/dev-games/Manifest.gz b/dev-games/Manifest.gz
index d18476096ec0..fbde4b972d3d 100644
--- a/dev-games/Manifest.gz
+++ b/dev-games/Manifest.gz
Binary files differ
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index 99c209526563..ba791e0e8868 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -5,8 +5,11 @@ AUX godot-4.0.3-gcc13.patch 292 BLAKE2B 5f6af5b59779ce6848bb9552674ebf36e43a8ac7
AUX godot-4.0_beta3-headless-header.patch 498 BLAKE2B 401942c17829136aace28e34f7c9a4f843457d5a76c8b7035f40894f3d4d06936ddf3f1bcedf81584a65c0bff96e6e556d20ed8856107dd76deb173c98256964 SHA512 f83ec6b0667108b7c8f744b90944cd686de114db5694e09febf20a359a7d3fe11457b0c3279719a1281309a647e856b729354d3bed5f6d5048548b8dd259f63b
AUX godot-4.0_rc2-musl.patch 878 BLAKE2B d10e22acc29e14df6b42b180ed480908c61e6a9781d81897b1b24a79de792fb967886fa7be6494440fb4e8ab69a83100d455838b986ce195dc30116638db544e SHA512 97b365952a7c1e7e4088ed71d1c98eccca1449b481d05e10fd750a6d29c7635dc6112e0e033ab1555cfe51eda8c0b805df1fbe78e9c54cea2664aed8570fa077
AUX godot-4.0_rc3-scons.patch 506 BLAKE2B 2fd1421760f082ea65febce90459f8a2d63e06e5b02b5e86e59bbacd14db78f76448ee50d0fa7c935b1a867f528b46a9b82b5bb03765d0b237e9af73d7fd14da SHA512 9ac654edc66a5a330055d1af0b706a5fa143061712146ddc02657add45d4518d96391d9e980c0a6b33d9fa966b5914a3f90a7b333f20885f0a05a7b8985fc667
+AUX godot-4.1-xkb-no-sowrap.patch 3079 BLAKE2B 0a306608389e2e8dc552e5c6d3f6e90e9c1933a833cd523be4728458ecf167558b76e91e8fe133392a485798516f0d110d9c09b4a00f9652d417a759f9ef4a34 SHA512 40e112083bdb6bcf28974a2d92fec7b677e78ee8d521e809ef4e884e57768267308a3ee970f0eb4ae530bd8fb49344ce782afa73d714bfa3db210db779c9f7a9
DIST godot-3.5.2-stable.tar.xz 24047432 BLAKE2B a4d600cb174b2f79cc91c583b1052db2e7e2921003ffd5a307a2484af9cc050b600e763b6016ba2df043ba5e492f0bdd13c207fd3a3d794b6602f7c574093cb0 SHA512 e9f3c8b23cd69422639fe22948fb1f5f2071dff6e013fee3c08d6d3c1f39de4dfc252d32eb395c847021c9bbc1b2fa320500140ff3e684bf00530889ba48a181
DIST godot-4.0.3-stable.tar.xz 30203636 BLAKE2B bfdf2f3a349d541039639fbce9d9d10ba6bfc200ae9442900709b1cb3d3c40dcf68b3de10d9ebe7211a1dfc380a5cf8954c5ed1d9a510afaeec8cee2dc4e9123 SHA512 185c3caf99dbfeffc83fa8298c801121ee58c4c6d3854127aeb3cb2128ed08ea1925229b90f08a79e3ea5e674725fe62e219226a58a17789c0e72ae8f27ed576
+DIST godot-4.1-stable.tar.xz 30679684 BLAKE2B dc088aa1496f9acd77ffeb2d35f1e0c71521e6cad4db8301626f1eb1aa9a147bc77e573ec82f84f05f38edcc2962991f45c822da9013797865ac0fd8669028ee SHA512 561473924fdfcc97f32ecdeedc3548059acf8d53701b17074ac5f880af3c95f60dbbcc594e7a9c919e4aa1067b3d362448fce2cfcfe76fe13fe63ad29a7c3bb6
EBUILD godot-3.5.2.ebuild 6571 BLAKE2B 93fc5f5c79b4ddcfc53ddc0f3ebe1d5ae1cd0e9c87b268e04085ebbdf7134ef4a2f8c9185dbb76ff43c3d08a6d92a948dd411b3a912bc966bfa54beda2b3be72 SHA512 bcb3e090d1753b5e167e5d00498d39714eeb3f91882f0d9bb4dd258ac155335337119c644cb4864a6a848101384d19036908f253525df703f6b3b035cb178d9c
EBUILD godot-4.0.3.ebuild 6932 BLAKE2B 1c772a375410a6d869922a74baaf9af69c129073fbc84eee5d4ce0fdf218d84b42b13bc99663b751c4ddb1c242fd3472d88dbd9fc2ff20f013187656c49104d5 SHA512 0312b17d7eea7a42b8a5815fc467983ace1add272483b528bfd1815c192de90c86a686c59aeb39a52a2fe42cad319c09c51f95560dbeb93277a8dfc5a81830a1
+EBUILD godot-4.1.ebuild 6933 BLAKE2B 9a76cbf72c680b7a502d749a7af59ebeb6e4563b41796865e153e471c1467253ce262648bdce3b9376653363cf47c59eddcd39e7e7dfcdd0de9779783e7aae6e SHA512 35ea2b5615a8ee0932ba2defba9ae0779b3f0269fff7912d9197585fe9a5196f05a16aaaad9918287ddce528afb4db638d92fd0d44bec33a3111712977d7f319
MISC metadata.xml 1551 BLAKE2B 718ca848e6b90fad730ea413ff8d25a9c23836da1ff890d7c93d458a0b46b503a4d1b949742a4a819eb0323eb0626a3541cd35d41f809b600891fa470f565ff6 SHA512 b935ee9256ae07a8f01bc458ee41c46e25be8a38b6921cf353a20332c59b6083bd6f73e2112858827b3b7bccdb256f9122e1d9691d2a3751aba85bbb8c4ab262
diff --git a/dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch b/dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch
new file mode 100644
index 000000000000..c4643b332a37
--- /dev/null
+++ b/dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch
@@ -0,0 +1,77 @@
+https://github.com/godotengine/godot/pull/79097
+From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com>
+Date: Thu, 6 Jul 2023 14:05:28 +0200
+Subject: [PATCH] Linux: Fix build with `use_sowrap=no` and various
+ warnings/errors
+
+--- a/platform/linuxbsd/joypad_linux.cpp
++++ b/platform/linuxbsd/joypad_linux.cpp
+@@ -98,19 +98,20 @@ static bool detect_sandbox() {
+
+ JoypadLinux::JoypadLinux(Input *in) {
+ #ifdef UDEV_ENABLED
+-#ifdef SOWRAP_ENABLED
+-#ifdef DEBUG_ENABLED
+- int dylibloader_verbose = 1;
+-#else
+- int dylibloader_verbose = 0;
+-#endif
+ if (detect_sandbox()) {
+ // Linux binaries in sandboxes / containers need special handling because
+ // libudev doesn't work there. So we need to fallback to manual parsing
+ // of /dev/input in such case.
+ use_udev = false;
+ print_verbose("JoypadLinux: udev enabled, but detected incompatible sandboxed mode. Falling back to /dev/input to detect joypads.");
+- } else {
++ }
++#ifdef SOWRAP_ENABLED
++ else {
++#ifdef DEBUG_ENABLED
++ int dylibloader_verbose = 1;
++#else
++ int dylibloader_verbose = 0;
++#endif
+ use_udev = initialize_libudev(dylibloader_verbose) == 0;
+ if (use_udev) {
+ if (!udev_new || !udev_unref || !udev_enumerate_new || !udev_enumerate_add_match_subsystem || !udev_enumerate_scan_devices || !udev_enumerate_get_list_entry || !udev_list_entry_get_next || !udev_list_entry_get_name || !udev_device_new_from_syspath || !udev_device_get_devnode || !udev_device_get_action || !udev_device_unref || !udev_enumerate_unref || !udev_monitor_new_from_netlink || !udev_monitor_filter_add_match_subsystem_devtype || !udev_monitor_enable_receiving || !udev_monitor_get_fd || !udev_monitor_receive_device || !udev_monitor_unref) {
+@@ -124,10 +125,11 @@ JoypadLinux::JoypadLinux(Input *in) {
+ print_verbose("JoypadLinux: udev enabled, but couldn't be loaded. Falling back to /dev/input to detect joypads.");
+ }
+ }
+-#endif
++#endif // SOWRAP_ENABLED
+ #else
+ print_verbose("JoypadLinux: udev disabled, parsing /dev/input to detect joypads.");
+-#endif
++#endif // UDEV_ENABLED
++
+ input = in;
+ monitor_joypads_thread.start(monitor_joypads_thread_func, this);
+ joypad_events_thread.start(joypad_events_thread_func, this);
+--- a/platform/linuxbsd/x11/display_server_x11.cpp
++++ b/platform/linuxbsd/x11/display_server_x11.cpp
+@@ -5449,7 +5449,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
+ }
+ #else
+ #ifdef XKB_ENABLED
+- xkb_loaded = true;
++ bool xkb_loaded = true;
+ #endif
+ #endif
+
+@@ -5476,6 +5476,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
+
+ r_error = OK;
+
++#ifdef SOWRAP_ENABLED
+ {
+ if (!XcursorImageCreate || !XcursorImageLoadCursor || !XcursorImageDestroy || !XcursorGetDefaultSize || !XcursorGetTheme || !XcursorLibraryLoadImage) {
+ // There's no API to check version, check if functions are available instead.
+@@ -5484,6 +5485,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
+ return;
+ }
+ }
++#endif
+
+ for (int i = 0; i < CURSOR_MAX; i++) {
+ cursors[i] = None;
diff --git a/dev-games/godot/godot-4.1.ebuild b/dev-games/godot/godot-4.1.ebuild
new file mode 100644
index 000000000000..6e716de56c83
--- /dev/null
+++ b/dev-games/godot/godot-4.1.ebuild
@@ -0,0 +1,230 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
+
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/"
+SRC_URI="https://downloads.tuxfamily.org/godotengine/${PV}/${P}-stable.tar.xz"
+S="${WORKDIR}/${P}-stable"
+
+LICENSE="
+ MIT
+ Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
+ gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
+SLOT="4"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="
+ alsa +dbus debug deprecated +fontconfig +gui pulseaudio raycast
+ +runner speech test +theora +tools +udev +upnp +vulkan +webp"
+# TODO: tests still need more figuring out
+RESTRICT="test"
+
+# dlopen: libglvnd
+RDEPEND="
+ app-arch/zstd:=
+ dev-games/recastnavigation:=
+ dev-libs/icu:=
+ dev-libs/libpcre2:=[pcre32]
+ media-libs/freetype[brotli,harfbuzz]
+ media-libs/harfbuzz:=[icu]
+ media-libs/libogg
+ media-libs/libpng:=
+ media-libs/libvorbis
+ <net-libs/mbedtls-3:=
+ net-libs/wslay
+ sys-libs/zlib:=
+ alsa? ( media-libs/alsa-lib )
+ dbus? ( sys-apps/dbus )
+ fontconfig? ( media-libs/fontconfig )
+ gui? (
+ media-libs/libglvnd
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libxkbcommon
+ tools? ( raycast? ( media-libs/embree:3 ) )
+ vulkan? ( media-libs/vulkan-loader[X] )
+ )
+ pulseaudio? ( media-libs/libpulse )
+ speech? ( app-accessibility/speech-dispatcher )
+ theora? ( media-libs/libtheora )
+ tools? ( app-misc/ca-certificates )
+ udev? ( virtual/udev )
+ upnp? ( net-libs/miniupnpc:= )
+ webp? ( media-libs/libwebp:= )"
+DEPEND="
+ ${RDEPEND}
+ gui? ( x11-base/xorg-proto )
+ tools? ( test? ( dev-cpp/doctest ) )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
+ "${FILESDIR}"/${PN}-4.0_rc2-musl.patch
+ "${FILESDIR}"/${PN}-4.0_rc3-scons.patch
+ "${FILESDIR}"/${P}-xkb-no-sowrap.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
+ sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
+ sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
+ -i misc/dist/linux/org.godotengine.Godot.desktop || die
+
+ sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
+
+ # use of builtin_ switches can be messy (see below), delete to be sure
+ local unbundle=(
+ doctest embree freetype graphite harfbuzz icu4c libogg
+ libpng libtheora libvorbis libwebp linuxbsd_headers mbedtls
+ miniupnpc pcre2 recastnavigation volk wslay zlib zstd
+ # certs: unused by generated header, but scons panics if not found
+ )
+ rm -r "${unbundle[@]/#/thirdparty/}" || die
+
+ ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
+}
+
+src_compile() {
+ local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+ local esconsargs=(
+ AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+ progress=no
+ verbose=yes
+
+ use_sowrap=no
+
+ alsa=$(usex alsa)
+ dbus=$(usex dbus)
+ deprecated=$(usex deprecated)
+ fontconfig=$(usex fontconfig)
+ opengl3=$(usex gui)
+ pulseaudio=$(usex pulseaudio)
+ speechd=$(usex speech)
+ udev=$(usex udev)
+ use_volk=no # unnecessary when linking directly to libvulkan
+ vulkan=$(usex gui $(usex vulkan))
+ x11=$(usex gui)
+
+ system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+ # platform/*/detect.py uses builtin_* switches to check if need
+ # to link with system libraries, but ignores whether the dep is
+ # actually used, so "enable" deleted builtins on disabled deps
+ builtin_certs=no
+ builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
+ builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+ builtin_freetype=no
+ builtin_glslang=yes #879111 (for now, may revisit if more stable)
+ builtin_graphite=no
+ builtin_harfbuzz=no
+ builtin_icu4c=no
+ builtin_libogg=no
+ builtin_libpng=no
+ builtin_libtheora=$(usex !theora)
+ builtin_libvorbis=no
+ builtin_libwebp=$(usex !webp)
+ builtin_mbedtls=no
+ builtin_miniupnpc=$(usex !upnp)
+ builtin_msdfgen=yes # not wired for unbundling nor packaged
+ builtin_pcre2=no
+ builtin_recastnavigation=no
+ builtin_rvo2=yes # bundled copy has godot-specific changes
+ builtin_squish=yes # ^ likewise, may not be safe to unbundle
+ builtin_wslay=no
+ builtin_xatlas=yes # not wired for unbundling nor packaged
+ builtin_zlib=no
+ builtin_zstd=no
+ # (more is bundled in third_party/ but they lack builtin_* switches)
+
+ # modules with optional dependencies, "possible" to disable more but
+ # gets messy and breaks all sorts of features (expected enabled)
+ module_mono_enabled=no # unhandled
+ # note raycast is only enabled on amd64+arm64, see raycast/config.py
+ module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_webp_enabled=$(usex webp)
+
+ # let *FLAGS handle these, e.g. can pass -flto as-is
+ debug_symbols=no
+ lto=none
+ optimize=custom
+ use_static_cpp=no
+ )
+
+ if use runner && use tools; then
+ # build alternate faster + ~60% smaller binary for running
+ # games or servers without game development debug paths
+ escons extra_suffix=runner target=template_release "${esconsargs[@]}"
+ fi
+
+ esconsargs+=(
+ target=$(usex tools editor template_$(usex debug{,} release))
+ dev_build=$(usex debug)
+
+ # harmless but note this bakes in --test in the final binary
+ tests=$(usex tools $(usex test))
+ )
+
+ escons extra_suffix=main "${esconsargs[@]}"
+}
+
+src_test() {
+ xdg_environment_reset
+ bin/godot*.main --headless --test || die
+}
+
+src_install() {
+ local s=godot${SLOT}
+
+ newbin bin/godot*.main ${s}
+ if use runner && use tools; then
+ newbin bin/godot*.runner ${s}-runner
+ else
+ # always available, revdeps shouldn't depend on [runner]
+ dosym ${s} /usr/bin/${s}-runner
+ fi
+
+ newman misc/dist/linux/godot.6 ${s}.6
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+ if use gui; then
+ newicon icon.svg ${s}.svg
+ newmenu misc/dist/linux/org.godotengine.Godot.desktop \
+ org.godotengine.${s^}.desktop
+
+ insinto /usr/share/metainfo
+ newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ org.godotengine.${s^}.appdata.xml
+
+ insinto /usr/share/mime/application
+ newins misc/dist/linux/org.godotengine.Godot.xml \
+ org.godotengine.${s^}.xml
+ fi
+
+ newbashcomp misc/dist/shell/godot.bash-completion ${s}
+ bashcomp_alias ${s}{,-runner}
+
+ insinto /usr/share/fish/vendor_completions.d
+ newins misc/dist/shell/godot.fish ${s}.fish
+ dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/dist/shell/_godot.zsh-completion _${s}
+ dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
+}