# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# shellcheck shell=bash
# shellcheck disable=SC2034
EAPI=8
inherit linux-info
MY_PN="GE-Proton"
MY_PV="${PV//./-}"
MY_P="${MY_PN}${MY_PV}"
DESCRIPTION="Custom distribution of Valves Proton with various patches"
HOMEPAGE="https://github.com/GloriousEggroll/proton-ge-custom"
SRC_URI="
amd64? ( https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${MY_P}/${MY_P}.tar.gz )
arm64? ( https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${MY_P}/${MY_P}-aarch64.tar.gz )
"
S="${WORKDIR}/${MY_P}"
# from dist.LICENSE
LICENSE="LGPL-2.1 ZLIB libpng LGPL-2 OFL-1.1 MIT MPL-2.0"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm64"
IUSE="+ntsync"
# this ebuild expects
# the steam runtime
RDEPEND="
games-util/steam-launcher[steam-runtime(+)]
"
# all prebuilt
QA_PREBUILT="*"
# we will install Proton with this name
# to avoid conflicting with other installs
INST_P="${MY_PN}-Portage"
pkg_setup() {
if use ntsync; then
CONFIG_CHECK="~NTSYNC"
linux-info_pkg_setup
fi
}
src_unpack() {
default
if use arm64; then
mv "${WORKDIR}/${MY_P}"{-aarch64,} || die
fi
}
src_prepare() {
sed -i -e "s/${MY_P}/${INST_P}/g" compatibilitytool.vdf || die
default
}
src_install() {
local compatd="/usr/share/steam/compatibilitytools.d"
dodir "${compatd}"
# mv to preserve mode
mv "${WORKDIR}/${MY_P}" "${ED}/${compatd}/${INST_P}" || die
fowners -R root:root "${compatd}/${INST_P}"
# user_settings.py
insinto "/etc/proton/${INST_P}"
doins "${FILESDIR}/user_settings.py"
dosym -r "/etc/proton/${INST_P}/user_settings.py" "${compatd}/${INST_P}/user_settings.py"
# ntsync
if use ntsync; then
insinto /etc/modules-load.d
newins - ntsync.conf <<-EOF
ntsync
EOF
insinto /etc/security/limits.d
newins - 26-steam-nofile.conf <<-EOF
* hard nofile 524288
EOF
fi
}
pkg_postinst() {
elog "user_settings.py was installed to /etc/proton/${INST_P}/user_settings.py"
}