-%global debug_package %{nil} -%global __requires_exclude_from ^/opt/Heroic/.*$ -%global __provides_exclude_from ^/opt/Heroic/.*$ - -%global legendary_version 0.21.1 -%global gogdl_version 1.3.0 -%global nile_version 1.2.0 -%global comet_version 0.2.0 - -Name: heroic-games-launcher -Version: 2.22.3 -Release: 3%{?dist} -Summary: Open source launcher for GOG, Epic, and Amazon Games (Nexus Optimized) - -License: GPL-3.0-only AND MIT AND BSD-3-Clause -URL: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher - -# Use the native upstream RPM -Source0: %{url}/releases/download/v%{version}/Heroic-%{version}-linux-x86_64.rpm - -ExclusiveArch: x86_64 - -# Required to unpack the upstream RPM natively -BuildRequires: cpio -BuildRequires: desktop-file-utils - -# Explicit dependencies (matching upstream RPM runtime Requires) -Requires: alsa-lib -Requires: atk -Requires: at-spi2-core -Requires: cups-libs -Requires: gtk3 -Requires: libnotify -Requires: libuuid -Requires: libXtst -Requires: mesa-libgbm -Requires: nss -Requires: libXScrnSaver -Requires: libxcb -Requires: libXcomposite -Requires: libXdamage -Requires: libXrandr -Requires: libdrm -Requires: hicolor-icon-theme -Requires: libappindicator-gtk3 -Requires: python3 -Requires: which -Requires: xdg-utils - -# Native gaming ecosystem integrations -Recommends: gamemode -Recommends: mangohud - -Provides: heroic = %{version}-%{release} -Provides: bundled(comet) = %{comet_version} -Provides: bundled(gogdl) = %{gogdl_version} -Provides: bundled(legendary) = %{legendary_version} -Provides: bundled(nile) = %{nile_version} - -%description -Heroic is a Free and Open Source Epic, GOG, and Amazon Prime Games launcher. -Packaged exclusively for the Nexus repository. This version bypasses bloated source compilation by natively extracting the upstream RPM, injecting a custom Wayland rendering wrapper, and stripping unnecessary static binaries. - -%prep -%setup -c -T -# Rip open the upstream RPM natively -rpm2cpio %{SOURCE0} | cpio -idmv - -%build -# No compilation required for pre-built binaries - -%install - -# 1. Install the main application folder -install -d -m 0755 %{buildroot}/opt/Heroic -cp -a opt/Heroic/* %{buildroot}/opt/Heroic/ - -# 2. Install standard desktop entries and icons -install -d -m 0755 %{buildroot}%{_datadir} -cp -a usr/share/applications %{buildroot}%{_datadir}/ -cp -a usr/share/icons %{buildroot}%{_datadir}/ - -# 3. Create the Native Wayland Wrapper Script -install -d -m 0755 %{buildroot}%{_bindir} -cat <<-'EOF' > %{buildroot}%{_bindir}/heroic -#!/bin/sh -# Automatically force native Wayland rendering if detected -if [ "$XDG_SESSION_TYPE" = "wayland" ] || [ -n "$WAYLAND_DISPLAY" ]; then - export ELECTRON_OZONE_PLATFORM_HINT="auto" -fi -exec /opt/Heroic/heroic "$@" -EOF -chmod 0755 %{buildroot}%{_bindir}/heroic - -# 4. Optimization: Strip useless static libraries bundled by upstream -find %{buildroot}/opt/Heroic -type f -name "*.a" -delete - -%files -%{_bindir}/heroic -%{_datadir}/applications/*.desktop -%{_datadir}/icons/hicolor/*/apps/*.* -/opt/Heroic/ -# Electron aborts at startup ("SUID sandbox helper binary was found, but is -# not configured correctly", setuid_sandbox_host.cc:166) unless chrome-sandbox -# is SUID root 4755 - proven FATAL rc=133 as non-root under xvfb 2026-10-02; -# same fix vesktop/stoat-desktop already ship, matches Google Chrome's rpm. -%attr(4755, root, root) /opt/Heroic/chrome-sandbox %changelog -* Fri Oct 02 2026 opencode-agent[bot] <41898282+opencode-agent[bot]@users.noreply.github.com> - 2.22.3-3 -- Fix startup crash: ship chrome-sandbox as %attr(4755, root, root) so the - Electron SUID sandbox helper is configured correctly (was 0755 -> - FATAL abort for every non-root launch; verified under xvfb before/after). -* Sat Sep 19 2026 Ackerman-00 - 2.22.3-2 -- Correct bundled(legendary) Provides to 0.21.1 (what the 2.22.3 artifact - actually ships; verified via `legendary --version` inside the upstream RPM) - -* Wed Sep 16 2026 Ackerman-00 - 2.22.3-1 +* Wed Oct 07 2026 Ackerman-00 - 2.22.3-1 - Auto-update to upstream release v2.22.3 - -* Tue Sep 15 2026 Ackerman-00 - 2.22.2-1 -- Auto-update to upstream release v2.22.2 - -* Sun Aug 09 2026 Ackerman-00 - 2.22.1-4 -- Update to upstream 2.22.1 (the auto-updater bumped Version without a - changelog entry; Release continues from the already-published 2.22.1-3 - so the upgrade path is not broken) -- Refresh bundled() Provides to what the 2.22.1 artifact actually ships: - legendary 0.21.0, gogdl 1.3.0, nile 1.2.0 (comet unchanged at 0.2.0) - -* Sun Aug 02 2026 Ackerman-00 - 2.22.0-3 -- Add missing runtime Requires declared by the upstream RPM (at-spi2-core, - libnotify, libuuid, libXtst, xdg-utils) - -* Sun Aug 02 2026 Ackerman-00 - 2.22.0-2 -- Drop nonexistent umu-launcher Recommends and replace nonexistent falcond with - gamemode in the native gaming ecosystem Recommends - -* Wed Apr 15 2026 Nexus Bot - 2.22.0-1