Files
packages/anda/misc/extest/rust-extest.spec
T
2025-09-03 03:18:06 +00:00

99 lines
2.8 KiB
RPMSpec

%global commit 185dc538691ddd16c949779a9af41d2513749045
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20250903
%if 0%{?fedora} == 41
%ifarch %ix86
%global debug_package %{nil}
%endif
%endif
# While there's an upstream version at Supreeeme/extest, we're using
# the same fork as Bazzite so we can use the same patches.
# This fork has no tags so we're gonna use the commit hash as the version
# Don't mangle shebangs
%global __brp_mangle_shebangs %{nil}
# Exclude input files from mangling
%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$
Name: extest
Version: %{commit_date}git.%{shortcommit}
Release: 1%?dist
Summary: X11 XTEST reimplementation primarily for Steam Controller on Wayland
License: MIT
URL: https://github.com/bazzite-org/extest
Source0: %{url}/archive/%{commit}.tar.gz
# While the upstream project has the same script, it copies the Steam desktop shortcut to
# $HOME and modifies it there. The following inline script modifies the global Steam
# desktop shortcut to load Extest for all users.
Source1: override_steam_desktop_file.sh
Packager: Cappy Ishihara <cappy@fyralabs.com>
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: anda-srpm-macros
BuildRequires: openssl-devel
BuildRequires: gcc
BuildRequires: perl
BuildRequires: rust-packaging
BuildRequires: systemd-rpm-macros
BuildRequires: clang
BuildRequires: mold
Recommends: %{name}-steam
%ifarch x86_64
Recommends: %{name}(x86-32)
%endif
%description
Extest is a drop in replacement for the X11 XTEST extension. It creates a virtual device with the uinput kernel module. It's been primarily developed for allowing the desktop functionality on the Steam Controller to work while Steam is open on Wayland.
# Subpackage for dynamically patching Steam's scripts
%package steam
BuildArch: noarch
Summary: Extest subpackage that patches Steam's scripts to load Extest
Requires: %{name}(x86-32)
Recommends: %{name}
%description steam
This subpackage contains scripts that patch Steam's scripts to load Extest. This is necessary for Extest to work with Steam on Wayland.
%prep
%autosetup -n %{name}-%{commit}
%cargo_prep_online
%build
%cargo_build
%install
%cargo_install
mkdir -p %{buildroot}%{_libdir}/extest/
install -D -p -m0755 target/rpm/libextest.so %{buildroot}%{_libdir}/extest/libextest.so
mkdir -p %{buildroot}%{_libexecdir}/extest/
install -D -p -m 0755 %{SOURCE1} %{buildroot}%{_libexecdir}/extest/override_steam_desktop_file.sh
# Trigger on Steam install for steam subpackage
%triggerin -n %{name}-steam -- steam
%{_libexecdir}/extest/override_steam_desktop_file.sh
%files
%license LICENSE
%doc README.md
%{_libdir}/extest/libextest.so
%files steam
%{_libexecdir}/extest/override_steam_desktop_file.sh
%changelog
%autochangelog