%global debug_package %{nil} %global __strip /bin/true %global nabu_release 1.4.0.7.1 %global uname_r 6.17.0-nabu-senemos-v%{nabu_release} %global nabu_build_stamp 2608291708 Name: senemos-nabu-kernel Epoch: 1 Version: 1.17.0 Release: %{nabu_build_stamp}.stable.v%{nabu_release}%{?dist} Summary: Single in-place SENEMOS stable kernel for Xiaomi Pad 5 License: GPL-2.0-only AND MIT URL: https://copr.fedorainfracloud.org/coprs/mcc45tr/nabu-linux/ BuildArch: noarch Source0: nabu-v%{nabu_release}-rpm-payload.tar.gz Source3: nabu-build-stamp Source5: 91-nabu-late-xhci.conf Source6: 90-nabu-late-xhci.conf BuildRequires: systemd-rpm-macros Requires: nabu-kernel-maintenance-api >= 3 Requires(posttrans): coreutils Requires(postun): kmod Obsoletes: senemos-nabu-kernel-v1.4.0.1 Obsoletes: senemos-nabu-kernel-v1.4.0.2 Provides: senemos-nabu-kernel-v1.4.0.2 Provides: installonlypkg(kernel) %description The stable Nabu kernel package name is intentionally independent of the kernel release. DNF therefore treats future COPR builds as ordinary upgrades instead of unrelated packages. Image, DTB, modules and build identity move together in this one RPM; the shared CORE service handles deferred UKI preparation. %prep [[ '%{nabu_build_stamp}' =~ ^[0-9]{10}$ ]] || exit 1 grep -Fxq '%{nabu_build_stamp}' %{SOURCE3} %build %install mkdir -p %{buildroot} tar -xzf %{SOURCE0} -C %{buildroot} install -Dm0644 %{SOURCE5} %{buildroot}%{_prefix}/lib/dracut/dracut.conf.d/90-nabu-omit-early-xhci.conf install -Dm0644 %{SOURCE6} %{buildroot}%{_prefix}/lib/modules-load.d/90-nabu-late-xhci.conf %check # Kernel payload archives become the authoritative RPM file metadata. Reject # an archive created from a developer-owned staging tree before it can publish # non-root ownership into /boot or /usr/lib/modules. if tar --numeric-owner -tvzf %{SOURCE0} | awk '$2 != "0/0" { print; bad=1; exit } END { exit bad }'; then : else echo 'Kernel payload contains a non-root owner.' >&2 exit 1 fi test -s %{buildroot}/boot/vmlinuz-%{uname_r} test -s %{buildroot}%{_prefix}/lib/modules/%{uname_r}/dtb/qcom/sm8150-xiaomi-nabu.dtb test -d %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel %posttrans install -d -m0755 /var/lib/nabu-kernel-maintenance/pending.d temporary=$(mktemp /var/lib/nabu-kernel-maintenance/pending.d/.stable.XXXXXX) printf '%%s\n' '%{uname_r}' > "$temporary" chmod 0644 "$temporary" mv -f "$temporary" /var/lib/nabu-kernel-maintenance/pending.d/stable %postun if [ "$1" -eq 0 ]; then /usr/sbin/depmod -a || : fi %files %{_prefix}/lib/dracut/dracut.conf.d/90-nabu-omit-early-xhci.conf %{_prefix}/lib/modules-load.d/90-nabu-late-xhci.conf /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.* %{_prefix}/lib/modules/%{uname_r}/kernel/ %changelog * Sat Aug 29 2026 mcc45tr - 1:1.17.0-%{nabu_build_stamp}.stable.v1.4.0.7.1 - Keep the running version plus one replacement through DNF's native install-only policy; boot integration still exposes one canonical entry. * Sat Aug 29 2026 mcc45tr - 1:1.17.0-%{nabu_build_stamp}.stable.v1.4.0.7.1 - Preserve a running legacy split payload during the one-time migration and keep install-only kernel capabilities out of the unified RPM. * Sat Aug 29 2026 mcc45tr - 1:1.17.0-%{nabu_build_stamp}.stable.v1.4.0.7.1 - Derive the RPM release once from the SRPM builder's Europe/Istanbul clock. * Sat Aug 29 2026 mcc45tr - 1:1.17.0-1.v1.4.0.7.1.2 - Merge selector, image, DTB and modules into one stable kernel RPM. - Move stylus autopair integration to CORE and retire split kernel payloads. * Sat Aug 29 2026 mcc45tr - 1:1.17.0-1.v1.4.0.7.1.1 - Upgrade stable core and modules in place without install-only semantics. - Remove the kernel-owned DNF update timer and synchronous UKI scriptlet. - Queue one exact stable UKI job for the shared maintenance service. * Tue Aug 25 2026 SENEMOS Project - 1:1.17.0-1.v1.4.0.7.1 - Notify touch only after the DSI panel pipeline is enabled and correct WCN3990 single-channel scan event interpretation. - Add a GPIO-backed pogo keyboard controller, Xiaomi HID filtering and a physical keyboard-aware SW_TABLET_MODE computer/tablet transition. - Refactor IDTP9418 stylus charging, report its Bluetooth MAC through a safe event ABI and sysfs, and trigger idempotent BlueZ pairing from udev. * Tue Aug 25 2026 SENEMOS Project - 1:1.17.0-1.v1.4.0.7 - Add PM8150 PON bootloader and recovery reboot-mode values used by Nabu's included PM8150 device tree. - Declare the ath10k SNOC device wake-capable after modem initialization and release that capability during teardown so suspend WoWLAN can be armed. - Preserve the validated v1.4.0.6 kernel configuration except for the new release-localversion string. * Tue Aug 25 2026 SENEMOS Project - 1:1.17.0-1.v1.4.0.6 - Keep the experimental 90 Hz panel and touch implementation in the source, but hide it by default behind the expose_nabu_90hz module parameter. - Keep the Nabu DPU DSPP topology allocated and update CTM state without a full modeset so Night Light transitions do not blank the dual-DSI panel. - Reject developer-owned payload archives and publish root-owned kernel and module files. * Sun Aug 23 2026 SENEMOS Project - 1:1.17.0-1.v1.4.0.5 - Add Novatek low-power double-tap wake with a balanced SPI IRQ wake path. - Preserve the vendor 60/120 Hz TDDI commands and avoid unsupported scan-band writes at 90 Hz so the touch firmware does not enter its reset loop. - Correct qcom-fg charging-state polarity and initialize status from the charger supply. - Derive the readable RPM release suffix and uname from one dotted release value. Use an epoch once so DNF upgrades from the former 5.v1405 scheme. * Sun Aug 23 2026 SENEMOS Project - 1.17.0-5.v1405 - Install the late-XHCI rule as an immutable vendor dracut policy under a new basename so a stale empty /etc drop-in cannot mask the boot-time omission. * Sun Aug 23 2026 SENEMOS Project - 1.17.0-4.v1405 - Replace stale or empty copies of the hardware-owned late-XHCI dracut policy while retaining the previous file as an RPM backup. * Sun Aug 23 2026 SENEMOS Project - 1.17.0-3.v1405 - Keep only the versioned core and modules payloads install-only. Upgrade the stable-name integration package normally so shared updater files are replaced instead of conflicting with retained older meta packages. * Sun Aug 23 2026 SENEMOS Project - 1.17.0-2.v1405 - Resolve the target kernel from the newest installed core NEVRA so retained install-only fallback kernels do not prevent canonical UKI regeneration. * Sun Aug 23 2026 SENEMOS Project - 1.17.0-1.v1405 - Keep the stable senemos-nabu-kernel package name and the established 6.17.0-nabu-senemos-v1.4.0.4 uname format. - Use the vendor low TDDI scan band for the additional 90 Hz mode so the 120 Hz command cannot reset the NVT touch firmware at 90 Hz. - Defer optional XHCI/pogo-keyboard probing until the real root so failed USB enumeration cannot hold the kernel before /init. * Sat Aug 22 2026 SENEMOS Project - 1.4.0.3-5.test - Keep the running legacy core and modules installed during the stable-name migration instead of obsoleting their live files. - Mark the stable kernel package set as install-only so normal DNF updates can retain the running kernel without disabling its safety protection. * 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.