%global debug_package %{nil} Name: nabu-system-integration Version: 2.0.0 Release: 5.test%{?dist} Summary: Unified system integration for Xiaomi Pad 5 (nabu) License: MIT AND GPL-3.0-or-later URL: https://copr.fedorainfracloud.org/coprs/mcc45tr/nabu-linux/ Source0: %{name}-%{version}.tar.zst BuildArch: noarch BuildRequires: systemd-rpm-macros BuildRequires: systemd-udev Requires: NetworkManager-wifi Requires: alsa-ucm Requires: atheros-firmware Requires: bash Requires: coreutils Requires: dracut Requires: hexagonrpc-nabu >= 0.4.0-103.nabu3.test Requires: iio-sensor-proxy-nabu >= 3.9-104.nabu5.test %if 0%{?fedora} >= 45 Requires: libcanberra-backend-pulse %else # Before Fedora 45 the PulseAudio module was part of the main libcanberra RPM. Requires: libcanberra %endif Requires: libssc-nabu >= 0.4.1-101.nabu4 Requires: qcom-firmware Requires: qrtr Requires: rmtfs Requires: systemd Requires: systemd-udev Requires: tuned Requires: tuned-ppd Requires: tqftpserv Requires: upower Requires: util-linux-core Requires: wpa_supplicant Requires: xiaomi-nabu-firmware Requires: zram-generator # One transaction replaces the former fragmented system-policy packages. Provides: nabu-core-config = %{version}-%{release} Obsoletes: nabu-core-config < %{version}-%{release} Provides: nabu-device-config = %{version}-%{release} Obsoletes: nabu-device-config < %{version}-%{release} Provides: nabu-audio-config = %{version}-%{release} Obsoletes: nabu-audio-config < %{version}-%{release} Provides: nabu-runtime-integration = %{version}-%{release} Provides: nabu-runtime-integration = 1.4.0.1-6.test%{?dist} Obsoletes: nabu-runtime-integration < %{version}-%{release} Provides: nabu-zram-compat = %{version}-%{release} Obsoletes: nabu-zram-compat < %{version}-%{release} Provides: nabu-rawhide-zram-compat = %{version}-%{release} Obsoletes: nabu-rawhide-zram-compat < %{version}-%{release} Provides: nabu-swtpm-selinux-compat = %{version}-%{release} Obsoletes: nabu-swtpm-selinux-compat < %{version}-%{release} Provides: nabu-rawhide-swtpm-selinux-compat = %{version}-%{release} Obsoletes: nabu-rawhide-swtpm-selinux-compat < %{version}-%{release} Provides: nabu-fedora-configs-core = %{version}-%{release} Obsoletes: nabu-fedora-configs-core < %{version}-%{release} Provides: xiaomi-nabu-configs = %{version}-%{release} Obsoletes: xiaomi-nabu-configs < %{version}-%{release} Provides: alsa-ucm-conf-sm8150 = %{version}-%{release} Obsoletes: alsa-ucm-conf-sm8150 < %{version}-%{release} %description Unified, desktop-independent Nabu system policy. It combines networking, audio, input, RTC, suspend, sensor, zram and diagnostic integration while keeping firmware, hardware libraries, the kernel and desktop environments in their own auditable packages. %prep %autosetup %build %install cp -a payload/etc payload/usr %{buildroot}/ install -d -m0755 %{buildroot}%{_sysconfdir}/modules-load.d ln -s /dev/null %{buildroot}%{_sysconfdir}/modules-load.d/scsi_dh.conf install -Dm0755 runtime/nabu-pmic-rtc-sync \ %{buildroot}%{_libexecdir}/senemos-nabu/nabu-pmic-rtc-sync install -Dm0755 runtime/nabu-slpi-suspend \ %{buildroot}%{_libexecdir}/senemos-nabu/nabu-slpi-suspend install -Dm0755 runtime/nabu-sensor-session-gate \ %{buildroot}%{_libexecdir}/senemos-nabu/nabu-sensor-session-gate install -Dm0755 runtime/senemos-nabu-status \ %{buildroot}%{_bindir}/senemos-nabu-status install -Dm0644 runtime/nabu-pmic-rtc-sync.service \ %{buildroot}%{_unitdir}/nabu-pmic-rtc-sync.service install -Dm0644 runtime/nabu-slpi-suspend.service \ %{buildroot}%{_unitdir}/nabu-slpi-suspend.service install -Dm0644 runtime/nabu-sensor-session-gate.service \ %{buildroot}%{_unitdir}/nabu-sensor-session-gate.service install -Dm0644 runtime/mnt-vendor-persist.mount \ %{buildroot}%{_unitdir}/mnt-vendor-persist.mount install -Dm0644 runtime/90-senemos-nabu.preset \ %{buildroot}%{_presetdir}/90-senemos-nabu.preset install -Dm0644 runtime/10-nabu-sensor-stack.conf \ %{buildroot}%{_unitdir}/iio-sensor-proxy.service.d/10-nabu-sensor-stack.conf install -Dm0644 runtime/10-nabu-wlan-firmware-order.conf \ %{buildroot}%{_unitdir}/rmtfs.service.d/10-nabu-wlan-firmware-order.conf install -Dm0644 runtime/20-nabu-wifi-wowlan.conf \ %{buildroot}%{_sysconfdir}/NetworkManager/conf.d/20-nabu-wifi-wowlan.conf install -Dm0644 runtime/80-nabu-disable-efi-rtc-wakeup.rules \ %{buildroot}%{_udevrulesdir}/80-nabu-disable-efi-rtc-wakeup.rules install -Dm0644 runtime/81-nabu-suspend-wake.rules \ %{buildroot}%{_udevrulesdir}/81-nabu-suspend-wake.rules install -Dm0644 runtime/90-nabu-unneeded-storage.conf \ %{buildroot}%{_prefix}/lib/dracut/dracut.conf.d/90-nabu-unneeded-storage.conf install -Dm0644 runtime/90-nabu-mcc45tr.hwdb \ %{buildroot}%{_udevhwdbdir}/90-nabu-mcc45tr.hwdb install -Dm0644 runtime/fastfetch-config.jsonc \ %{buildroot}%{_sysconfdir}/xdg/fastfetch/config.jsonc install -Dm0644 sm8150.conf \ %{buildroot}%{_datadir}/alsa/ucm2/conf.d/sm8150/sm8150.conf install -Dm0644 HiFi.conf \ %{buildroot}%{_datadir}/alsa/ucm2/Xiaomi/nabu/HiFi.conf install -Dm0644 89-xiaomi_nabu.conf \ %{buildroot}%{_sysconfdir}/pulse/daemon.conf.d/89-xiaomi_nabu.conf install -Dm0644 nabu.pa \ %{buildroot}%{_sysconfdir}/pulse/default.pa.d/nabu.pa %check bash -n runtime/nabu-pmic-rtc-sync bash -n runtime/nabu-slpi-suspend bash -n runtime/nabu-sensor-session-gate bash tests/test-sensor-session-gate.sh bash -n runtime/senemos-nabu-status udevadm verify %{buildroot}%{_udevrulesdir}/99-libinput-calibration-matrix.rules %pretrans -p /usr/bin/bash /usr/bin/mkdir -p /mnt/vendor/persist || : legacy_iwd=/etc/NetworkManager/conf.d/10-iwd.conf if [ -f "$legacy_iwd" ] && \ printf '[device]\nwifi.backend=iwd\n' | /usr/bin/cmp -s - "$legacy_iwd"; then /usr/bin/rm -f -- "$legacy_iwd" fi %post %systemd_post ath10k-shutdown.service nabu-pmic-rtc-sync.service nabu-slpi-suspend.service nabu-sensor-session-gate.service mnt-vendor-persist.mount if [ -x /usr/bin/systemd-hwdb ]; then /usr/bin/systemd-hwdb update || : fi %preun %systemd_preun ath10k-shutdown.service nabu-pmic-rtc-sync.service nabu-slpi-suspend.service nabu-sensor-session-gate.service mnt-vendor-persist.mount %postun %systemd_postun_with_restart ath10k-shutdown.service nabu-pmic-rtc-sync.service nabu-slpi-suspend.service nabu-sensor-session-gate.service mnt-vendor-persist.mount if [ -x /usr/bin/systemd-hwdb ]; then /usr/bin/systemd-hwdb update || : fi %posttrans -p /usr/bin/bash if [ -x /usr/bin/udevadm ]; then /usr/bin/udevadm control --reload >/dev/null 2>&1 || : /usr/bin/udevadm trigger --action=change \ --subsystem-match=misc --sysname-match='fastrpc-*' >/dev/null 2>&1 || : fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl disable --now \ hexagonrpcd-adsp-sensorspd.service >/dev/null 2>&1 || : /usr/bin/systemctl enable \ rmtfs.service \ tqftpserv.service \ mnt-vendor-persist.mount \ hexagonrpcd-sdsp.service \ hexagonrpcd-adsp-rootpd.service \ iio-sensor-proxy.service >/dev/null 2>&1 || : /usr/bin/systemctl enable nabu-sensor-session-gate.service >/dev/null 2>&1 || : case "$(/usr/bin/systemctl is-system-running 2>/dev/null || :)" in running|degraded) /usr/bin/systemctl start mnt-vendor-persist.mount >/dev/null 2>&1 || : /usr/bin/systemctl start \ hexagonrpcd-sdsp.service \ hexagonrpcd-adsp-rootpd.service >/dev/null 2>&1 || : /usr/bin/systemctl restart iio-sensor-proxy.service >/dev/null 2>&1 || : ;; esac fi %files %license licenses/* %doc FIRMWARE-PROVENANCE.md %config(noreplace) %{_sysconfdir}/dracut.conf.d/99-nabu-generic.conf %config(noreplace) %{_sysconfdir}/systemd/zram-generator.conf %config(noreplace) %{_sysconfdir}/modules-load.d/scsi_dh.conf %config(noreplace) %{_sysconfdir}/pulse/daemon.conf.d/89-xiaomi_nabu.conf %config(noreplace) %{_sysconfdir}/pulse/default.pa.d/nabu.pa %config(noreplace) %{_sysconfdir}/xdg/fastfetch/config.jsonc %{_datadir}/alsa/ucm2/conf.d/sm8150/sm8150.conf %{_datadir}/alsa/ucm2/Xiaomi/nabu/HiFi.conf %{_bindir}/senemos-nabu-status %dir %{_libexecdir}/senemos-nabu %{_libexecdir}/senemos-nabu/nabu-pmic-rtc-sync %{_libexecdir}/senemos-nabu/nabu-slpi-suspend %{_libexecdir}/senemos-nabu/nabu-sensor-session-gate %{_unitdir}/ath10k-shutdown.service %{_unitdir}/nabu-pmic-rtc-sync.service %{_unitdir}/nabu-slpi-suspend.service %{_unitdir}/nabu-sensor-session-gate.service %{_unitdir}/mnt-vendor-persist.mount %{_presetdir}/80-nabu-core.preset %{_presetdir}/90-senemos-nabu.preset %dir %{_unitdir}/iio-sensor-proxy.service.d %{_unitdir}/iio-sensor-proxy.service.d/10-nabu-sensor-stack.conf %dir %{_unitdir}/rmtfs.service.d %{_unitdir}/rmtfs.service.d/10-nabu-wlan-firmware-order.conf %dir %{_sysconfdir}/NetworkManager/conf.d %config(noreplace) %{_sysconfdir}/NetworkManager/conf.d/20-nabu-wifi-wowlan.conf %{_udevrulesdir}/80-nabu-disable-efi-rtc-wakeup.rules %{_udevrulesdir}/81-nabu-suspend-wake.rules %{_udevrulesdir}/99-libinput-calibration-matrix.rules %{_udevrulesdir}/99-nabu-rtc.rules %{_prefix}/lib/dracut/dracut.conf.d/90-nabu-unneeded-storage.conf %{_udevhwdbdir}/90-nabu-mcc45tr.hwdb %changelog * Wed Aug 26 2026 SENEMOS Project - 2.0.0-5.test - Use the split libcanberra PulseAudio backend on Fedora 45 and Rawhide while retaining the monolithic libcanberra provider used by Fedora 43 and 44. * Tue Aug 25 2026 SENEMOS Project - 2.0.0-4.test - Select disconnect and magic-packet WoWLAN triggers for the wake-capable WCN3990 SNOC path without requesting wake on arbitrary network traffic. - Gate graphical startup on accelerometer enumeration, restart iio-sensor-proxy at most once after a late SLPI publication, and retain a bounded non-blocking fallback when the sensor DSP remains unavailable. - Require the writable, extended-listener HexagonRPC build used by the sensor registry service. * Tue Aug 25 2026 SENEMOS Project - 2.0.0-3.test - Make the Nabu, Qualcomm and Atheros firmware packages hard runtime dependencies and document their separate third-party provenance. - Start tqftpserv before rmtfs so the modem can publish the WLFW service before ath10k initializes; explicitly enable both services during upgrades. - Restore the proven stereo UCM route and safe audible CS35L41 gain of 8/20. - Install the PulseAudio-compatible libcanberra backend used by Plasma sounds. * Tue Aug 25 2026 SENEMOS Project - 2.0.0-2.test - Stop forcing NetworkManager's experimental iwd backend on Nabu. - Return clean installations to Fedora's supported wpa_supplicant backend. - Remove only the byte-identical legacy iwd snippet during an upgrade while preserving administrator-modified NetworkManager configuration. * Sun Aug 23 2026 SENEMOS Project - 2.0.0-1.test - Merge core, device, audio, runtime and compatibility policy into one package. - Replace every retired package through RPM Provides and Obsoletes metadata.