%global debug_package %{nil} %global __strip /bin/true %global uname_r 6.17.0-nabu-senemos-v1.4.0.3 Name: senemos-nabu-kernel Version: 1.4.0.3 Release: 6.test%{?dist} Summary: Versioned Nabu kernel and managed update integration for Xiaomi Pad 5 License: GPL-2.0-only AND MIT URL: https://copr.fedorainfracloud.org/coprs/mcc45tr/nabu-linux/ BuildArch: noarch Source0: nabu-v1.4.0.3-rpm-payload.tar.gz Source1: nabu-kernel-update Source2: nabu-kernel-update.service Source3: nabu-kernel-update.timer Source4: 90-nabu-kernel-update.preset BuildRequires: systemd-rpm-macros Requires: senemos-nabu-kernel-core = %{version}-%{release} Requires: senemos-nabu-kernel-modules = %{version}-%{release} Requires: dnf5 Requires: systemd Obsoletes: senemos-nabu-kernel-v1.4.0.1 Obsoletes: senemos-nabu-kernel-v1.4.0.2 Provides: senemos-nabu-kernel-v1.4.0.2 %description Versioned Nabu kernel delivery and managed-update integration for Xiaomi Pad 5 (nabu). The stable package identity allows DNF to treat future COPR releases as ordinary upgrades, while its narrow systemd timer updates only the Nabu kernel family and moves the matching core and modules in the same transaction. %package -n senemos-nabu-kernel-core Summary: Nabu v1.4.0.3 kernel image, device tree and UKI integration Requires(posttrans): kmod Requires(posttrans): nabu-uki-config >= 1.2.0 Provides: senemos-nabu-kernel-core-v1.4.0.2 Provides: kernel-uname-r Provides: kernel-nabu-core-uname-r %description -n senemos-nabu-kernel-core Kernel image, configuration, symbol map and Xiaomi Pad 5 device tree. After a successful RPM transaction it atomically regenerates the canonical Nabu UKI and boot entry while preserving Android-return and fallback entries. %package -n senemos-nabu-kernel-modules Summary: Nabu v1.4.0.3 loadable modules Requires: senemos-nabu-kernel-core = %{version}-%{release} Provides: senemos-nabu-kernel-modules-v1.4.0.2 Provides: kernel-modules-uname-r %description -n senemos-nabu-kernel-modules Loadable modules matching the SENEMOS Nabu v1.4.0.3 kernel core package. %prep %build %install mkdir -p %{buildroot} tar -xzf %{SOURCE0} -C %{buildroot} install -Dm0755 %{SOURCE1} %{buildroot}%{_libexecdir}/nabu-kernel-update install -Dm0644 %{SOURCE2} %{buildroot}%{_unitdir}/nabu-kernel-update.service install -Dm0644 %{SOURCE3} %{buildroot}%{_unitdir}/nabu-kernel-update.timer install -Dm0644 %{SOURCE4} %{buildroot}%{_presetdir}/90-nabu-kernel-update.preset %post %systemd_post nabu-kernel-update.timer %preun %systemd_preun nabu-kernel-update.timer %postun %systemd_postun nabu-kernel-update.timer %posttrans -n senemos-nabu-kernel-core if /usr/bin/nabu-regenerate-uki %{uname_r}; then install -d -m0755 /var/lib/nabu-kernel-update printf '%%s\n' '%{uname_r}' > /var/lib/nabu-kernel-update/installed-kernel else printf 'Warning: automatic Nabu UKI generation failed for %%s; the update timer will retry.\n' '%{uname_r}' >&2 fi %postun -n senemos-nabu-kernel-core if [ "$1" -eq 0 ]; then /usr/sbin/depmod -a || : fi %files %{_libexecdir}/nabu-kernel-update %{_unitdir}/nabu-kernel-update.service %{_unitdir}/nabu-kernel-update.timer %{_presetdir}/90-nabu-kernel-update.preset %files -n senemos-nabu-kernel-core /boot/vmlinuz-%{uname_r} /boot/System.map-%{uname_r} /boot/config-%{uname_r} %{_prefix}/lib/modules/%{uname_r}/dtb/qcom/sm8150-xiaomi-nabu.dtb %{_prefix}/lib/modules/%{uname_r}/modules.* %files -n senemos-nabu-kernel-modules %{_prefix}/lib/modules/%{uname_r}/kernel/ %changelog * Sat Aug 22 2026 SENEMOS Project - 1.4.0.3-5.test - Keep the running v1.4.0.2 core and modules as a bootable fallback during the first stable-name migration instead of asking DNF to remove them. - Preserve DNF running-kernel protection; cleanup remains post-reboot only. * Sat Aug 22 2026 SENEMOS Project - 1.4.0.3-4.test - Preserve every complete fallback module tree even when its top-level directory is not explicitly owned by RPM. - Fail the unattended check if an existing Android or GNOME fallback entry has lost its EFI payload. * Sat Aug 22 2026 SENEMOS Project - 1.4.0.3-3.test - Resolve the target uname from the installed stable core RPM instead of comparing human release labels such as v1.37 and v1.4.0.3. - Verify the canonical entry names that exact UKI, allow ten minutes for UKI generation, and remove only unowned stale module trees after reboot. * Sat Aug 22 2026 SENEMOS Project - 1.4.0.3-2.test - Allow the narrow updater to replace the currently running previous Nabu RPM; the immutable v1.37 EFI fallback remains available until the next reboot. * Sat Aug 22 2026 SENEMOS Project - 1.4.0.3-1.test - Use stable RPM names so future COPR builds are normal DNF upgrades. - Add a persistent narrow update timer and post-transaction UKI generation. - Replace the prior kernel payload and canonical UKI instead of accumulating version-named packages and boot entries. - Rebuild the Nabu DTB with the FastRPC accelerometer mount matrix used by GNOME automatic rotation.