%global debug_package %{nil} Name: howdy-surface Version: 44.0.1 Release: 1%{?dist} Summary: IR Camera Bridge for Surface Pro 5 (1796) with Howdy Face Unlock License: MIT URL: https://github.com/yourname/surface-pro5-ir-howdy Source0: %{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: systemd-devel BuildRequires: python3-devel Requires: kernel-evernight-surface Requires: howdy >= 3.0.1 Requires: systemd Requires: python3-opencv Requires: i2c-tools %description Experimental IR camera bridge for Microsoft Surface Pro 5 (Model 1796, OV7251 + IPU3) %prep %setup -q -n %{name}-%{version} %build gcc -Wall -Wextra -O2 -o ir_bridge ir_bridge.c %install # Binary bridge install -Dm755 ir_bridge %{buildroot}%{_usr}/bin/ir_bridge # Setup IPU3 shell script install -Dm755 setup_ipu3.sh %{buildroot}%{_usr}/bin/setup_ipu3.sh # Udev rule for I2C video group access install -Dm644 99-surface-ir-i2c.rules %{buildroot}%{_udevrulesdir}/99-surface-ir-i2c.rules # Systemd service unit install -Dm644 surface_ir_bridge.service %{buildroot}%{_unitdir}/surface_ir_bridge.service %post # Reload udev rules udevadm control --reload-rules >/dev/null 2>&1 udevadm trigger -c add -s i2c-dev >/dev/null 2>&1 # Reload systemd units systemctl daemon-reload >/dev/null 2>&1 # Enable & start service systemctl enable --now surface_ir_bridge.service >/dev/null 2>&1 %preun # Stop and disable service before remove systemctl stop surface_ir_bridge.service >/dev/null 2>&1 systemctl disable surface_ir_bridge.service >/dev/null 2>&1 %postun # Cleanup systemd state systemctl daemon-reload >/dev/null 2>&1 udevadm trigger >/dev/null 2>&1 %files %{_usr}/bin/ir_bridge %{_usr}/bin/setup_ipu3.sh %{_udevrulesdir}/99-surface-ir-i2c.rules %{_unitdir}/surface_ir_bridge.service %changelog * Fri Jul 10 2026 Maintainer - 0.1-1 - Initial spec for Surface Pro5 IR Howdy bridge - Pack ir_bridge binary, udev rule, systemd service, setup script - Post script auto reload udev/systemd and enable service