ExcludeArch: %{ix86} %bcond_without check %if 0%{?rhel} <= 9 %global debug_package %{nil} %global _enable_debug_packages 0 %endif %global url https://github.com/ShadowBlip %global crate InputPlumber %global crateid org.shadowblip.%{crate} %global shortversion 0.75.1 %global commit f40af27c91e0d5ccb840e23386e91f8c24d46da0 #global committag 1 %global commitversion %{?committag:%{commit}}%{?!committag:%{shortversion}} %global shortcommitversion %{?committag:%(c=%{commit}; echo ${c:0:7})}%{?!committag:%{shortversion}} %global commitdatestring 2026-03-04 16:08:59 +0100 %global commitdate 20260304 %global commitgit %{?committag:^git%{commitdate}.%(c=%{commit}; echo ${c:0:7})} Name: inputplumber Version: %{shortversion}%{commitgit} Release: 1%{?dist} Summary: InputPlumber is an open source input routing and control daemon for Linux. It can be used to combine any number of input devices (like gamepads, mice, and keyboards) and translate their input to a variety of virtual device formats. # Main sources are GPLv3+, rest are rust licenses License: GPLv3+ AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND BSD-3-Clause AND (BSD-3-Clause OR Apache-2.0) AND BSL-1.0 AND CC0-1.0 AND ISC AND MIT AND (MIT OR Apache-2.0 OR CC0-1.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND ZLib URL: %{url}/%{crate} Source0: %{url}/%{crate}/archive/refs/tags/%{commitversion}/%{crate}-%{shortcommitversion}.tar.gz # To create the below sources: # * git clone %%{url}/%%{crate}.git at the specified commit # * cargo vendor > %%{crate}-%%{shortcommitversion}-vendor-config.toml # * tar -pczf %%{crate}-%%{shortcommitversion}-vendor.tar.xz vendor Source1: %{crate}-%{shortcommitversion}-vendor.tar.xz # * mv %%{crate}-%%{shortcommitversion}-vendor-config.toml .. Source2: %{crate}-%{shortcommitversion}-vendor-config.toml BuildRequires: cargo-rpm-macros >= 26 BuildRequires: rustc BuildRequires: cargo BuildRequires: libevdev-devel BuildRequires: libiio-devel BuildRequires: libudev-devel BuildRequires: llvm-devel BuildRequires: clang-devel BuildRequires: systemd-rpm-macros Requires: libevdev Requires: libiio Requires: polkit Recommends: linuxconsoletools Provides: inputplumber Conflicts: hhd %description %{summary}. %prep %autosetup -n %{crate}-%{commitversion} -p1 -a1 %cargo_prep -N # Check if .cargo/config.toml exists if [ -f .cargo/config.toml ]; then # If it exists, append the contents of %%{SOURCE2} to .cargo/config.toml cat %{SOURCE2} >> .cargo/config.toml echo "Appended %{SOURCE2} to .cargo/config.toml" else # If it does not exist, append the contents of %%{SOURCE2} to .cargo/config cat %{SOURCE2} >> .cargo/config echo "Appended %{SOURCE2} to .cargo/config" fi %build # Set vergen environment variables export VERGEN_GIT_COMMIT_DATE="date --utc '%{commitdatestring}'" export VERGEN_GIT_SHA="%{commit}" %cargo_build %{cargo_license_summary} %{cargo_license} > LICENSE.dependencies %{cargo_vendor_manifest} sed 's/\(.*\) (.*#\(.*\))/\1+git\2/' -i cargo-vendor.txt sed 's/^\([^+]*\)+.*+\([^+]*\)$/\1+\2/' -i cargo-vendor.txt %install # Set vergen environment variables export VERGEN_GIT_COMMIT_DATE="date --utc '%{commitdatestring}'" export VERGEN_GIT_SHA="%{commit}" make install PREFIX=%{buildroot}/usr NO_RELOAD=true %check %if %{with check} # Set vergen environment variables export VERGEN_GIT_COMMIT_DATE="date --utc '%{commitdatestring}'" export VERGEN_GIT_SHA="%{commit}" %cargo_test %endif %post %systemd_post %{name}.service if [[ "$(systemctl is-active %{name})" == "inactive" ]]; then systemctl enable --now %{name}.service fi %preun %systemd_preun %{name}.service %postun %systemd_postun %{name}.service %files %license LICENSE %license LICENSE.dependencies %license cargo-vendor.txt %doc README.md %{_bindir}/%{name} %{_datadir}/dbus-1/system.d/%{crateid}.conf %{_unitdir}/%{name}.service %{_unitdir}/%{name}-suspend.service %{_udevhwdbdir}/*.hwdb %{_udevrulesdir}/*.rules %{_datadir}/%{name}/capability_maps/*.yaml %{_datadir}/%{name}/devices/*.yaml %{_datadir}/%{name}/profiles/*.yaml %{_datadir}/%{name}/schema/*.json %{_datadir}/polkit-1/actions/%{crateid}.policy %{_datadir}/polkit-1/rules.d/%{crateid}.rules %changelog * Sat Mar 07 2026 Jean-Marc Liger - 0.75.1-1 Update to 0.75.1 * Tue Feb 17 2026 Jean-Marc Liger - 0.74.0-1 - Initial package