commit:     204b3f17d9c1366d1287bf066db7a0975c6e7fc5
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 29 03:58:17 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Aug 29 05:15:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=204b3f17

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 <ionen <AT> gentoo.org>

 .../{godot-4.3.ebuild => godot-4.3-r1.ebuild}      | 64 +++++++++-------------
 dev-games/godot/metadata.xml                       |  1 -
 2 files changed, 26 insertions(+), 39 deletions(-)

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 73a8bda01e8f..0bf48fbd9cbf 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}
-
-       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
+       # suffix varies depending on arch/features, use wildcard to simplify
+       newbin bin/godot* godot
 
-       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 ef5e4ba49472..b1acc9b2ce0d 100644
--- a/dev-games/godot/metadata.xml
+++ b/dev-games/godot/metadata.xml
@@ -22,7 +22,6 @@
        <use>
                <flag name="deprecated">Enable support for deprecated 
features</flag>
                <flag name="raycast">Enable the raycast Editor module using 
<pkg>media-libs/embree</pkg></flag>
-               <flag name="runner">Build an additional binary optimized for 
running games (only relevant with USE=tools)</flag>
                <flag name="tools">Enable the Godot Editor for game 
development</flag>
        </use>
        <upstream>

Reply via email to