# Copyright 2025-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit wrapper MY_PV="${PV//./-}" MY_P="GE-Proton${MY_PV}" DESCRIPTION="GloriousEggroll's custom Proton build with gaming optimizations" HOMEPAGE="https://github.com/GloriousEggroll/proton-ge-custom" SRC_URI="https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton${MY_PV}/${MY_P}.tar.gz" LICENSE="BSD BSD-2 LGPL-2.1+ ZLIB gsm libpng2 libtiff MIT OPENLDAP" SLOT="${PV}" KEYWORDS="-* ~amd64" IUSE="+abi_x86_32 +abi_x86_64" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" RDEPEND=" app-emulation/wine-desktop-common dev-libs/glib:2 dev-libs/libgcrypt:0 media-libs/alsa-lib media-libs/fontconfig media-libs/freetype:2 media-libs/libglvnd media-libs/libpulse media-libs/libsdl2 media-libs/vulkan-loader net-libs/gnutls sys-apps/dbus sys-libs/zlib x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXcursor x11-libs/libXext x11-libs/libXfixes x11-libs/libXi x11-libs/libXrandr x11-libs/libXrender x11-libs/libXxf86vm abi_x86_32? ( dev-libs/glib:2[abi_x86_32] media-libs/alsa-lib[abi_x86_32] media-libs/fontconfig[abi_x86_32] media-libs/freetype:2[abi_x86_32] media-libs/libglvnd[abi_x86_32] media-libs/vulkan-loader[abi_x86_32] x11-libs/libX11[abi_x86_32] x11-libs/libXext[abi_x86_32] ) " IDEPEND=">=app-eselect/eselect-wine-2" RESTRICT="mirror strip" S="${WORKDIR}/${MY_P}" WINE_PREFIX="/usr/lib/${PN}-${PV}" WINE_DATADIR="/usr/share/${PN}-${PV}" WINE_INCDIR="/usr/include/${PN}-${PV}" QA_PREBUILT="*" src_install() { dodir "${WINE_PREFIX}/bin" dodir "${WINE_PREFIX}/lib/wine" dodir "${WINE_PREFIX}/share/wine" dodir "${WINE_INCDIR}/wine" # Install binaries if [[ -d "${S}/files/bin" ]]; then exeinto "${WINE_PREFIX}/bin" doexe "${S}/files/bin"/* fi # Install wine libs to lib/wine/ (where the binary expects them) if [[ -d "${S}/files/lib/wine" ]]; then cp -a "${S}/files/lib/wine/"* "${ED}${WINE_PREFIX}/lib/wine/" || die fi # Create symlink wine -> lib/wine for eselect-wine compatibility dosym -r "${WINE_PREFIX}/lib/wine" "${WINE_PREFIX}/wine" # Install share data to prefix/share/wine (where binary expects ../share/wine) if [[ -d "${S}/files/share/wine" ]]; then cp -a "${S}/files/share/wine/"* "${ED}${WINE_PREFIX}/share/wine/" || die fi # Create share symlink for eselect-wine (must point to existing dir) dosym -r "${WINE_PREFIX}/share" "${WINE_DATADIR}" keepdir "${WINE_INCDIR}/wine" # Create variant wrappers for eselect-wine local bin for bin in "${ED}${WINE_PREFIX}/bin"/*; do [[ -f ${bin} && -x ${bin} ]] || continue local binname="${bin##*/}" make_wrapper "${binname}-${PN#wine-}-${PV}" "${WINE_PREFIX}/bin/${binname}" done } pkg_postinst() { eselect wine update --if-unset elog "To select this Wine version:" elog " eselect wine set ${PN}-${PV}" elog "" elog "GE-Proton features: Media Foundation, FSR, game-specific patches" elog "FSR4: PROTON_FSR4_UPGRADE=1" } pkg_postrm() { eselect wine update --if-unset }