Name: azurefin-romulus Version: 1 Release: %{?azurefin_release}%{!?azurefin_release:3}%{?dist} Summary: Surface Laptop 7 13-inch integration for Azurefin License: MIT URL: https://github.com/Xelef2000/azurefin Source0: 90-microsoft-romulus-input.rules Source1: romulus-bluetooth-address Source2: romulus-bluetooth-address.service Source3: bluetooth-romulus.conf Source4: romulus-bluetooth-address.example Source5: modules-initfs Source6: romulus-hifi.conf Source7: romulus-speaker-seq.conf Source8: 50-romulus.conf Source9: 51-romulus-audio-validation.conf Source10: 90-romulus-ucm.conf BuildArch: noarch BuildRequires: alsa-ucm Requires: bluez dracut dracut-network cryptsetup plymouth Requires: iptsd-surface-laptop-7 Requires: alsa-ucm wireplumber %description Input classification, device-local Bluetooth address provisioning and generic dracut requirements ported from pmOS. Conservative speaker routing validated on the 13-inch Romulus with the Azurefin kernel's amplifier gain caps. Software-only volume control preserves fixed hardware attenuation; this is not a thermal speaker-protection implementation. USB audio is unaffected. %prep %build %install install -Dm644 %{SOURCE0} %{buildroot}%{_prefix}/lib/udev/rules.d/90-microsoft-romulus-input.rules install -Dm755 %{SOURCE1} %{buildroot}%{_libexecdir}/romulus-bluetooth-address install -Dm644 %{SOURCE2} %{buildroot}%{_prefix}/lib/systemd/system/romulus-bluetooth-address.service install -Dm644 %{SOURCE3} %{buildroot}%{_prefix}/lib/systemd/system/bluetooth.service.d/romulus.conf install -Dm644 %{SOURCE4} %{buildroot}%{_datadir}/azurefin-romulus/romulus-bluetooth-address.example install -Dm644 %{SOURCE5} %{buildroot}%{_datadir}/azurefin-romulus/modules-initfs install -Dm644 %{SOURCE6} %{buildroot}%{_datadir}/azurefin-romulus/audio-reference/romulus-hifi.conf install -Dm644 %{SOURCE7} %{buildroot}%{_datadir}/azurefin-romulus/audio-reference/romulus-speaker-seq.conf install -Dm644 %{SOURCE8} %{buildroot}%{_prefix}/lib/dracut/dracut.conf.d/50-romulus.conf install -Dm644 %{SOURCE9} %{buildroot}%{_datadir}/wireplumber/wireplumber.conf.d/51-romulus-audio-validation.conf install -Dm644 %{SOURCE10} %{buildroot}%{_prefix}/lib/systemd/user/wireplumber.service.d/90-romulus-ucm.conf # A private UCM view avoids file ownership conflicts with alsa-ucm. Unchanged # files refer to Fedora's originals, while only the two tested profiles differ. cp -as %{_datadir}/alsa/ucm2 %{buildroot}%{_datadir}/azurefin-romulus/ucm2 unlink %{buildroot}%{_datadir}/azurefin-romulus/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf unlink %{buildroot}%{_datadir}/azurefin-romulus/ucm2/codecs/wsa884x/two-speakers/SpeakerSeq.conf install -m644 %{SOURCE6} %{buildroot}%{_datadir}/azurefin-romulus/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf install -m644 %{SOURCE7} %{buildroot}%{_datadir}/azurefin-romulus/ucm2/codecs/wsa884x/two-speakers/SpeakerSeq.conf %check test ! -L %{buildroot}%{_datadir}/azurefin-romulus/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf test ! -L %{buildroot}%{_datadir}/azurefin-romulus/ucm2/codecs/wsa884x/two-speakers/SpeakerSeq.conf cmp %{SOURCE6} %{buildroot}%{_datadir}/azurefin-romulus/ucm2/Qualcomm/x1e80100/T14s-HiFi.conf cmp %{SOURCE7} %{buildroot}%{_datadir}/azurefin-romulus/ucm2/codecs/wsa884x/two-speakers/SpeakerSeq.conf test -L %{buildroot}%{_datadir}/azurefin-romulus/ucm2/ucm.conf ! grep -q 'DefaultEnableSeq.conf\|PlaybackMixerElem "Speakers"' %{SOURCE6} %files %{_prefix}/lib/udev/rules.d/90-microsoft-romulus-input.rules %{_libexecdir}/romulus-bluetooth-address %{_prefix}/lib/systemd/system/romulus-bluetooth-address.service %{_prefix}/lib/systemd/system/bluetooth.service.d/romulus.conf %{_datadir}/azurefin-romulus %{_prefix}/lib/dracut/dracut.conf.d/50-romulus.conf %{_datadir}/wireplumber/wireplumber.conf.d/51-romulus-audio-validation.conf %{_prefix}/lib/systemd/user/wireplumber.service.d/90-romulus-ucm.conf %changelog * Tue Oct 06 2026 Felix - 1-3 - Activate hardware-tested conservative speaker profiles in a private UCM view - Use software volume, zero-volume startup and a packaged WirePlumber environment * Fri Sep 25 2026 Felix - 1-2 - Do not request built-in PCIe as a module and truncate dracut's driver install * Fri Sep 18 2026 Felix - 1-1 - Initial Azurefin hardware integration with audio validation gate