mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-22 21:43:03 -04:00
games-util/hydra-launcher-bin: add RPM_COMPRESS_TYPE, fix heredoc escaping, use process substitution for fperms, use -exec {} + over {} \;
Signed-off-by: Gurov <gurov@disroot.org>
This commit is contained in:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user