%global debug_package %{nil} %global nabu_release 7.2.0 %global nabu_build_stamp %(tr -d '\n' < %{_sourcedir}/nabu-build-stamp) %global uname_r 7.2.0-%{nabu_build_stamp} Name: senemos-nabu-kernel-mainline-alpha Epoch: 2 Version: 7.2.0 Release: %{nabu_build_stamp}%{?dist} Summary: Alpha Linux 7.2 mainline SENEMOS kernel for Xiaomi Pad 5 License: GPL-2.0-only AND MIT URL: https://github.com/MCC45TR/nabu-linux-kernel/tree/7.2.0-test ExclusiveArch: aarch64 Source0: linux-nabu-senemos-%{nabu_release}.tar.zst Source5: 91-nabu-late-xhci.conf Source6: 90-nabu-late-xhci.conf Source7: nabu-build-stamp BuildRequires: bc BuildRequires: bison BuildRequires: clang BuildRequires: dwarves BuildRequires: elfutils-libelf-devel BuildRequires: flex BuildRequires: kmod BuildRequires: lld BuildRequires: llvm BuildRequires: make BuildRequires: openssl BuildRequires: openssl-devel BuildRequires: perl BuildRequires: python3 BuildRequires: systemd-rpm-macros BuildRequires: zstd Requires: senemos-nabu-kernel-mainline-alpha-core = %{epoch}:%{version}-%{release} Requires: senemos-nabu-kernel-mainline-alpha-modules = %{epoch}:%{version}-%{release} Requires: senemos-nabu-pen-autopair Requires: senemos-nabu-kernel-alpha-fallback >= 1:1.17.0-0.4.alpha.v1.4.0.9 Requires: nabu-kernel-maintenance >= 1.0.0-1 Requires: nabu-boot-integration >= 2.0.0-12.test Provides: senemos-nabu-kernel-mainline-alpha-build = %{nabu_build_stamp} Provides: senemos-nabu-kernel = %{epoch}:%{version}-%{release} Obsoletes: senemos-nabu-kernel < %{epoch}:%{version}-%{release} Obsoletes: senemos-nabu-kernel-core < %{epoch}:%{version}-%{release} Obsoletes: senemos-nabu-kernel-modules < %{epoch}:%{version}-%{release} %description Isolated alpha build of upstream Linux 7.2 with the reviewed Xiaomi Pad 5 (nabu) hardware enablement carried from the SENEMOS 6.17 line. The selector replaces the former 6.17 selector package during a managed Rawhide migration. Versioned 6.17 core and modules packages remain installed as bootable fallbacks while this kernel completes physical hardware acceptance testing. %package -n senemos-nabu-kernel-mainline-alpha-core Summary: Linux %{uname_r} image, device tree and UKI integration Requires(posttrans): coreutils Provides: installonlypkg(kernel) Provides: kernel-uname-r Provides: kernel-nabu-core-uname-r %description -n senemos-nabu-kernel-mainline-alpha-core Kernel image, configuration, symbol map and Xiaomi Pad 5 device tree. The post-transaction hook only records pending work; the serialized maintenance service prepares the canonical UKI after the RPM transaction. %package -n senemos-nabu-kernel-mainline-alpha-modules Summary: Linux %{uname_r} loadable modules Requires: senemos-nabu-kernel-mainline-alpha-core = %{epoch}:%{version}-%{release} Provides: installonlypkg(kernel) Provides: kernel-modules-uname-r %description -n senemos-nabu-kernel-mainline-alpha-modules Loadable modules built against the exact Linux %{uname_r} ABI. %prep [[ '%{nabu_build_stamp}' =~ ^[0-9]{10}$ ]] || { printf 'Invalid Nabu kernel build stamp: %s\n' '%{nabu_build_stamp}' >&2 exit 1 } grep -Fxq '%{nabu_build_stamp}' %{SOURCE7} %autosetup -n linux-nabu-senemos-%{nabu_release} %build export ARCH=arm64 export LLVM=1 export LLVM_IAS=1 export KBUILD_BUILD_USER=senemos export KBUILD_BUILD_HOST=copr mkdir -p build cp senemos/configs/fedora-rawhide-aarch64.config build/.config KCONFIG_CONFIG=build/.config \ scripts/kconfig/merge_config.sh -m -r -O build \ build/.config senemos/configs/nabu-minimal.config scripts/config --file build/.config \ --set-str LOCALVERSION '-%{nabu_build_stamp}' \ --disable LOCALVERSION_AUTO make O=build olddefconfig make O=build %{?_smp_mflags} Image qcom/sm8150-xiaomi-nabu.dtb modules %install export ARCH=arm64 export LLVM=1 export LLVM_IAS=1 install -Dm0755 build/arch/arm64/boot/Image %{buildroot}/boot/vmlinuz-%{uname_r} install -Dm0644 build/System.map %{buildroot}/boot/System.map-%{uname_r} install -Dm0644 build/.config %{buildroot}/boot/config-%{uname_r} install -Dm0644 build/arch/arm64/boot/dts/qcom/sm8150-xiaomi-nabu.dtb \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/dtb/qcom/sm8150-xiaomi-nabu.dtb make O=build modules_install INSTALL_MOD_PATH=%{buildroot}%{_prefix} \ INSTALL_MOD_STRIP=1 DEPMOD=/bin/true rm -f %{buildroot}%{_prefix}/lib/modules/%{uname_r}/build rm -f %{buildroot}%{_prefix}/lib/modules/%{uname_r}/source /usr/sbin/depmod -b %{buildroot}%{_prefix} %{uname_r} 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 install -d -m0755 %{buildroot}%{_prefix}/lib/senemos-nabu/uki-version.d printf '%%s\n' '%{nabu_build_stamp}' > \ %{buildroot}%{_prefix}/lib/senemos-nabu/uki-version.d/%{uname_r} %check test -s %{buildroot}/boot/vmlinuz-%{uname_r} test -s %{buildroot}/boot/System.map-%{uname_r} test -s %{buildroot}/boot/config-%{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 test ! -e %{buildroot}%{_prefix}/lib/modules/%{uname_r}/build test ! -e %{buildroot}%{_prefix}/lib/modules/%{uname_r}/source grep -Fxq '%{nabu_build_stamp}' \ %{buildroot}%{_prefix}/lib/senemos-nabu/uki-version.d/%{uname_r} grep -Fxq 'CONFIG_LOCALVERSION="-%{nabu_build_stamp}"' \ %{buildroot}/boot/config-%{uname_r} test "$(make O=build -s kernelrelease)" = '%{uname_r}' modinfo -F vermagic \ %{buildroot}%{_prefix}/lib/modules/%{uname_r}/kernel/drivers/media/platform/qcom/iris/qcom-iris.ko.zst | \ grep -Fq '%{uname_r}' %posttrans -n senemos-nabu-kernel-mainline-alpha-core install -d -m0755 /var/lib/nabu-kernel-maintenance printf '%%s\n' '%{uname_r}' > /var/lib/nabu-kernel-maintenance/pending-kernel %postun -n senemos-nabu-kernel-mainline-alpha-core 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 %{_prefix}/lib/senemos-nabu/uki-version.d/%{uname_r} %files -n senemos-nabu-kernel-mainline-alpha-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-mainline-alpha-modules %{_prefix}/lib/modules/%{uname_r}/kernel/ %changelog * Fri Aug 28 2026 SENEMOS Project - 2:7.2.0-2608281336 - Replace product-style RPM revisions with the YYMMDDHHMM kernel build stamp. - Build the complete 7.2 kernel, Nabu DTB and modules from source in COPR. - Keep the alpha channel in package naming rather than the kernel uname. * Fri Aug 28 2026 SENEMOS Project - 2:0.0.9.2-1.alpha - Remove DNF and UKI generation from the RPM transaction. - Record pending UKI work for the branch-aware serialized maintenance service. * Thu Aug 27 2026 SENEMOS Project - 2:0.0.9.1-1.alpha - Recover the SLPI FastRPC channel without repeating a retained VMID assignment. - Restore automatic touchscreen binding and the missing QDSP6 audio DAIs. - Build MSM DRM into the image to match the validated Nabu boot ordering. - Return the canonical 7.2 UKI to quiet Plymouth startup after diagnostics. * Thu Aug 27 2026 SENEMOS Project - 2:0.0.9.0-1.alpha - Start the experimental mainline product version at v0.0.9.0. - Keep Linux 7.2 as the kernel ABI while separating product and kernel versions. - Own the per-kernel EFI product-version marker used by boot integration. - Require the v1.4.0.9 alpha fallback and retire older stable kernel slots. - Require branded SENEMOS6 and SENEMOS7 EFI integration. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.8.alpha - Own a per-kernel verbose marker so every RPM hook preserves diagnostics. - Supersede the ordering-sensitive 0.7 diagnostic packaging revision. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.7.alpha - Generate only the 7.2 canonical UKI in temporary verbose diagnostic mode. - Keep the 6.17 alpha fallback command line and UKI unchanged. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.6.alpha - Make the automatic updater follow the renamed mainline selector and core. - Match the 7.2 canonical UKI filename generated by nabu-regenerate-uki. - Add build-time checks for the successor package names in the updater. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.5.alpha - Replace older packaging revisions of the same 7.2 kernel ABI instead of co-installing duplicate owners through installonlypkg(kernel). - Continue preserving the differently named 6.17 core and modules fallbacks. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.4.alpha - Repair the disabled timer once when upgrading from the known-broken 0.2 renamed-selector transaction. - Preserve administrator-disabled state for every other installed version. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.3.alpha - Preserve the enabled update timer across the renamed-selector transaction. - Do not override an administrator-disabled timer on later package upgrades. * Thu Aug 27 2026 SENEMOS Project - 1:7.2.0-0.2.alpha - Declare the mainline-alpha selector as the successor to senemos-nabu-kernel. - Move the updater timer and late-XHCI policy into the successor selector. - Preserve installed versioned 6.17 core and modules packages as fallbacks. * Wed Aug 26 2026 SENEMOS Project - 1:7.2.0-0.1.alpha - Isolate the Linux 7.2 mainline candidate from the validated 6.17 package. - Mark the kernel ABI and all RPM names as mainline alpha. - Keep the stable kernel, updater integration and Android fallback untouched. * Wed Aug 26 2026 SENEMOS Project - 1:7.2.0-1.senemos - Rebase the Xiaomi Pad 5 kernel from Linux 6.17 to verified upstream Linux 7.2. - Preserve the stable 60/120 Hz display path, DT2W, charging, audio, FastRPC, tablet-mode and late-XHCI fixes while quarantining experimental 90 Hz mode. - Restore the IDT P9418 stylus charging driver and complete the Nabu audio, fuel-gauge and touchscreen device-tree contracts. - Port the v1.4.0.7.1 pogo-keyboard, WCN3990 scan, post-enable touch wake and IDTP9418 event/MAC ABI with automatic BlueZ stylus pairing.