From 2d4e1c58bbc438e9c4b2dfa4334df4c483602f4c Mon Sep 17 00:00:00 2001 From: Gurov Date: Sun, 17 May 2026 00:05:04 +0300 Subject: [PATCH] games-util/hydra-launcher-bin: add RPM_COMPRESS_TYPE, fix heredoc escaping, use process substitution for fperms, use -exec {} + over {} \; Signed-off-by: Gurov --- .../hydra-launcher-bin-3.9.7-r1.ebuild | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 games-util/hydra-launcher-bin/hydra-launcher-bin-3.9.7-r1.ebuild diff --git a/games-util/hydra-launcher-bin/hydra-launcher-bin-3.9.7-r1.ebuild b/games-util/hydra-launcher-bin/hydra-launcher-bin-3.9.7-r1.ebuild new file mode 100644 index 0000000000..66324cab0e --- /dev/null +++ b/games-util/hydra-launcher-bin/hydra-launcher-bin-3.9.7-r1.ebuild @@ -0,0 +1,85 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RPM_COMPRESS_TYPE="xz" + +inherit desktop rpm xdg + +DESCRIPTION="Open-source gaming platform and launcher" +HOMEPAGE="https://github.com/hydralauncher/hydra" +SRC_URI="amd64? ( https://github.com/hydralauncher/hydra/releases/download/v${PV}/hydralauncher-${PV}.x86_64.rpm )" +S="${WORKDIR}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="-* ~amd64" +RESTRICT="bindist mirror strip" +QA_PREBUILT="*" + +# native modules (classic-level, sharp) are abi-coupled to the bundled +# electron, so a system electron binary cannot be used +RDEPEND=" + app-accessibility/at-spi2-core + dev-libs/expat + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/fontconfig + media-libs/mesa + net-misc/aria2 + net-print/cups + sys-apps/dbus + virtual/zlib + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/pango" + +src_prepare() { + default + + # strip non-linux-x64 and musl prebuilds from classic-level + local pb=opt/Hydra/resources/app.asar.unpacked/node_modules/classic-level/prebuilds + find "${pb}" -mindepth 1 -maxdepth 1 -type d ! -name linux-x64 -exec rm -rf {} + || die + rm -rf "${pb}"/linux-x64/*.musl.node || die + + # strip musl variants from sharp + local sharp_base=opt/Hydra/resources/app.asar.unpacked/node_modules/@img + rm -rf "${sharp_base}"/*-linuxmusl-x64 || die +} + +src_install() { + insinto /opt + doins -r opt/Hydra + + # restore executable bits stripped by doins + while IFS= read -r -d '' exe; do + fperms +x "/${exe}" + done < <(find opt/Hydra -type f -executable -print0) + + # chrome-sandbox requires setuid root for electron's sandbox + fowners root "/opt/Hydra/chrome-sandbox" + fperms 4711 "/opt/Hydra/chrome-sandbox" + + domenu usr/share/applications/hydralauncher.desktop + doicon -s 512 usr/share/icons/hicolor/512x512/apps/hydralauncher.png + + # expose bundled libs to the bundled electron runtime + exeinto /usr/bin + newexe - hydralauncher <<-'EOF' + #!/bin/sh + export LD_LIBRARY_PATH="/opt/Hydra:${LD_LIBRARY_PATH}" + exec /opt/Hydra/hydralauncher "$@" + EOF +}