Skip to content

Commit

Permalink
add: extest (#1908) (#1928)
Browse files Browse the repository at this point in the history
Co-authored-by: madomado <[email protected]>
(cherry picked from commit f59908b)

Co-authored-by: Cappy Ishihara <[email protected]>
  • Loading branch information
raboneko and korewaChino authored Aug 15, 2024
1 parent 8172781 commit f04d285
Show file tree
Hide file tree
Showing 4 changed files with 126 additions and 0 deletions.
8 changes: 8 additions & 0 deletions anda/misc/extest/anda.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
project pkg {
rpm {
spec = "rust-extest.spec"
}
labels {
multilib = 1
}
}
13 changes: 13 additions & 0 deletions anda/misc/extest/override_steam_desktop_file.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash -x
EXTEST="/usr/lib/extest/libextest.so"
STEAM_DESKTOP_FILE="/usr/share/applications/steam.desktop"

if ! [ -f $STEAM_DESKTOP_FILE ]; then
echo "Could not find Steam's desktop file, is XDG_DATA_DIRS set properly?"
exit 1
fi

sed -i "s,Exec=/usr/bin/steam,Exec=env LD_PRELOAD=$EXTEST /usr/bin/steam," $STEAM_DESKTOP_FILE

echo $STEAM_DESKTOP_FILE
echo "Extest has been set up, enjoy!"
100 changes: 100 additions & 0 deletions anda/misc/extest/rust-extest.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
%global commit 79cdf2f642260d19139b071748c6f8d48a1dff10
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20240712

# 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/.*$
# Use Mold as the linker
%global build_rustflags %build_rustflags -C link-arg=-fuse-ld=mold

Name: extest
Version: %commit_date.git~%{shortcommit}
Release: %autorelease
Summary: X11 XTEST reimplementation primarily for Steam Controller on Wayland

License: MIT
URL: https://github.com/KyleGospo/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 <[email protected]>

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}.i686
%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

%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.

# If on x86_64, require the i686 version of the package
%ifarch x86_64
Requires: %{name}.i686
%else
Requires: %{name}
%endif

%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

5 changes: 5 additions & 0 deletions anda/misc/extest/update.rhai
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rpm.global("commit", gh_commit("KyleGospo/extest"));
if rpm.changed() {
rpm.global("commit_date", date());
rpm.release();
}

0 comments on commit f04d285

Please sign in to comment.