Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[f41] add: extest (#1908) #1927

Merged
merged 1 commit into from
Aug 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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();
}
Loading