From 204b3f17d9c1366d1287bf066db7a0975c6e7fc5 Mon Sep 17 00:00:00 2001 From: Ionen Wolkens Date: Wed, 28 Aug 2024 23:58:17 -0400 Subject: [PATCH] dev-games/godot: remove slotting support and USE=runner Mostly to be easier to maintain, see also bug #938658. Few notes: - use SLOT=0 to avoid looking inconsistent when godot5 exists - not doing slotmove given if a package in an overlay (none in-tree) depended on godot:4 and has a game invoke godot with "4" it'll be broken with this version - no !blocker given all this does is drop the 4 suffix, so no files conflict (essentially a new slot, except the old ones were dropped), users that didn't want a specific slot and using .desktop to start it won't notice a thing after depclean the old - USE=runner was intended for packaging games with system godot but that never really been used and games would be break too frequently even if we did without doing major.minor slots (dropping it also allows to build faster), could revisit if we really want this possibly with a separate godot-runner slotted package (aka a simplified build without much work to adapt to slots) Closes: https://bugs.gentoo.org/938658 Signed-off-by: Ionen Wolkens --- .../{godot-4.3.ebuild => godot-4.3-r1.ebuild} | 64 ++++++++----------- dev-games/godot/metadata.xml | 1 - 2 files changed, 26 insertions(+), 39 deletions(-) rename dev-games/godot/{godot-4.3.ebuild => godot-4.3-r1.ebuild} (80%) diff --git a/dev-games/godot/godot-4.3.ebuild b/dev-games/godot/godot-4.3-r1.ebuild similarity index 80% rename from dev-games/godot/godot-4.3.ebuild rename to dev-games/godot/godot-4.3-r1.ebuild index 73a8bda01e8f6..0bf48fbd9cbf5 100644 --- a/dev-games/godot/godot-4.3.ebuild +++ b/dev-games/godot/godot-4.3-r1.ebuild @@ -20,13 +20,13 @@ LICENSE=" Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 ) " -SLOT="4" +SLOT="0" 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 wayland +webp + speech test +theora +tools +udev +upnp +vulkan wayland +webp " REQUIRED_USE="wayland? ( gui )" # TODO: tests still need more figuring out @@ -96,14 +96,6 @@ PATCHES=( src_prepare() { default - # handle slotting - 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 -e "s/godot/&${SLOT}/g" \ - -i misc/dist/shell/{godot.bash-completion,godot.fish,_godot.zsh-completion} || 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 @@ -198,12 +190,6 @@ src_compile() { 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) @@ -212,43 +198,45 @@ src_compile() { tests=$(usex tools $(usex test)) ) - escons extra_suffix=main "${esconsargs[@]}" + escons "${esconsargs[@]}" } src_test() { xdg_environment_reset - bin/godot*.main --headless --test || die + + bin/godot* --headless --test || die } src_install() { - local s=godot${SLOT} + # suffix varies depending on arch/features, use wildcard to simplify + newbin bin/godot* godot - 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 + doman misc/dist/linux/godot.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 + newicon icon.svg godot.svg + domenu misc/dist/linux/org.godotengine.Godot.desktop insinto /usr/share/metainfo - newins misc/dist/linux/org.godotengine.Godot.appdata.xml \ - org.godotengine.${s^}.appdata.xml + doins misc/dist/linux/org.godotengine.Godot.appdata.xml insinto /usr/share/mime/application - newins misc/dist/linux/org.godotengine.Godot.xml \ - org.godotengine.${s^}.xml + doins misc/dist/linux/org.godotengine.Godot.xml fi - newbashcomp misc/dist/shell/godot.bash-completion ${s} - newfishcomp misc/dist/shell/godot.fish ${s}.fish - newzshcomp misc/dist/shell/_godot.zsh-completion _${s} + newbashcomp misc/dist/shell/godot.bash-completion godot + newfishcomp misc/dist/shell/godot.fish godot.fish + newzshcomp misc/dist/shell/_godot.zsh-completion _godot +} + +pkg_postinst() { + xdg_pkg_postinst + + if has_version dev-games/godot:3 || has_version dev-games/godot:4; then + elog + elog "Gentoo's godot ebuild has removed slotting support meaning that godot" + elog "is now invoked with 'godot' rather than 'godot4', and godot3 has been" + elog "removed. USE=runner and 'godot*-runner' were also removed." + fi } diff --git a/dev-games/godot/metadata.xml b/dev-games/godot/metadata.xml index ef5e4ba494722..b1acc9b2ce0d2 100644 --- a/dev-games/godot/metadata.xml +++ b/dev-games/godot/metadata.xml @@ -22,7 +22,6 @@ Enable support for deprecated features Enable the raycast Editor module using media-libs/embree - Build an additional binary optimized for running games (only relevant with USE=tools) Enable the Godot Editor for game development