%global debug_package %{nil} %global limine_version 12.6.0 Name: nabu-boot-integration Version: 2.0.0 Release: 2.test%{?dist} Summary: Unified UKI infrastructure for Xiaomi Pad 5 (nabu) License: MIT AND BSD-2-Clause URL: https://copr.fedorainfracloud.org/coprs/mcc45tr/nabu-linux/ Source0: %{name}-%{version}.tar.zst ExclusiveArch: aarch64 BuildRequires: coreutils BuildRequires: cpio BuildRequires: dracut BuildRequires: systemd-rpm-macros BuildRequires: zstd Requires: binutils Requires: cpio Requires: dracut Requires: kbd-misc Requires: systemd-ukify Recommends: xiaomi-nabu-firmware Requires: zstd Provides: nabu-uki-config = %{version}-%{release} Obsoletes: nabu-uki-config < %{version}-%{release} Provides: nabu-fedora-boot = %{version}-%{release} Obsoletes: nabu-fedora-boot < %{version}-%{release} %description Shared Nabu UKI, initramfs, console and kernel-install integration. Boot-manager EFI installation is supplied by exactly one of the systemd-boot, rEFInd or Limine selector subpackages. Authorized Nabu firmware is recommended but not redistributed by this package; UKI generation fails closed when it is absent. %package -n nabu-boot-systemd Summary: systemd-boot selector and automatic ESP integration for Nabu Requires: %{name} = %{version}-%{release} Requires: systemd-boot-unsigned Provides: nabu-boot-manager = 2.0.0.3 Provides: nabu-systemd-boot-config = %{version}-%{release} Obsoletes: nabu-systemd-boot-config < %{version}-%{release} Conflicts: nabu-boot-refind Conflicts: nabu-boot-limine Conflicts: nabu-refind-config Conflicts: nabu-limine-config %description -n nabu-boot-systemd Selects systemd-boot, installs its AArch64 EFI binary and synchronizes the current Nabu UKI plus the verified Android-return entry on the mounted ESP. %package -n nabu-boot-refind Summary: rEFInd selector and automatic ESP integration for Nabu Requires: %{name} = %{version}-%{release} Requires: rEFInd Provides: nabu-boot-manager = 2.0.0.2 Provides: nabu-refind-config = %{version}-%{release} Obsoletes: nabu-refind-config < %{version}-%{release} Conflicts: nabu-boot-systemd Conflicts: nabu-boot-limine Conflicts: nabu-systemd-boot-config Conflicts: nabu-limine-config %description -n nabu-boot-refind Selects rEFInd, installs Fedora's AArch64 EFI binary and synchronizes the current Nabu UKI plus the verified Android-return entry on the mounted ESP. %package -n nabu-boot-limine Summary: Limine selector and automatic ESP integration for Nabu License: MIT AND BSD-2-Clause Requires: %{name} = %{version}-%{release} Provides: nabu-boot-manager = 2.0.0.1 Provides: nabu-limine-config = %{version}-%{release} Obsoletes: nabu-limine-config < %{version}-%{release} Conflicts: nabu-boot-systemd Conflicts: nabu-boot-refind Conflicts: nabu-systemd-boot-config Conflicts: nabu-refind-config %description -n nabu-boot-limine Selects Limine and installs the official Limine %{limine_version} AArch64 UEFI binary with a generated Nabu UKI and verified Android-return configuration. %prep %autosetup %build %check bash -n payload/usr/bin/nabu-regenerate-uki bash -n payload/usr/libexec/senemos-nabu/sanitize-initramfs bash -n manager/nabu-configure-boot-manager bash tests/test-sanitize-initramfs.sh bash tests/test-boot-manager.sh printf '%s %s\n' \ 1824330fe1966d4d3a45933a0619b8104a22e0ffedfa6a5c5c133f9868e8d4c6 \ manager/limine-%{limine_version}-BOOTAA64.EFI | sha256sum -c - %install cp -a payload/etc payload/usr %{buildroot}/ install -Dm0755 manager/nabu-configure-boot-manager \ %{buildroot}%{_bindir}/nabu-configure-boot-manager install -Dm0644 manager/loader.conf \ %{buildroot}%{_datadir}/nabu/bootloader/systemd-boot/loader.conf install -Dm0644 manager/android.conf \ %{buildroot}%{_datadir}/nabu/bootloader/systemd-boot/android.conf install -Dm0644 manager/systemd-boot.selected \ %{buildroot}%{_prefix}/lib/nabu-boot/managers/systemd-boot.selected install -Dm0644 manager/refind.selected \ %{buildroot}%{_prefix}/lib/nabu-boot/managers/refind.selected install -Dm0644 manager/limine.selected \ %{buildroot}%{_prefix}/lib/nabu-boot/managers/limine.selected install -Dm0644 manager/limine-%{limine_version}-BOOTAA64.EFI \ %{buildroot}%{_datadir}/nabu/bootloader/limine/BOOTAA64.EFI %posttrans -p /usr/bin/bash latest_nabu_kernel="$(find /usr/lib/modules -mindepth 1 -maxdepth 1 -type d -name '*nabu*' -printf '%%f\n' 2>/dev/null | sort -V | tail -n1)" if [[ -n "$latest_nabu_kernel" && -s "/boot/vmlinuz-${latest_nabu_kernel}" ]]; then /usr/bin/nabu-regenerate-uki "$latest_nabu_kernel" || \ printf 'Warning: automatic Nabu UKI regeneration failed for %s\n' "$latest_nabu_kernel" >&2 fi %posttrans -n nabu-boot-systemd -p /usr/bin/bash /usr/bin/nabu-configure-boot-manager systemd-boot || \ printf 'Warning: systemd-boot ESP configuration was deferred or failed.\n' >&2 %posttrans -n nabu-boot-refind -p /usr/bin/bash /usr/bin/nabu-configure-boot-manager refind || \ printf 'Warning: rEFInd ESP configuration was deferred or failed.\n' >&2 %posttrans -n nabu-boot-limine -p /usr/bin/bash /usr/bin/nabu-configure-boot-manager limine || \ printf 'Warning: Limine ESP configuration was deferred or failed.\n' >&2 %files %license LICENSE %config(noreplace) %{_sysconfdir}/kernel/nabu-uki.conf %config(noreplace) %{_sysconfdir}/systemd/ukify.conf %config(noreplace) %{_sysconfdir}/vconsole.conf %{_bindir}/nabu-configure-boot-manager %{_bindir}/nabu-regenerate-uki %{_prefix}/lib/senemos-nabu/ %{_libexecdir}/senemos-nabu/ %{_prefix}/lib/dracut/modules.d/95nabu-dtb/ %{_prefix}/lib/kernel/install.d/95-nabu-uki.install %dir %{_prefix}/lib/nabu-boot %dir %{_prefix}/lib/nabu-boot/managers %files -n nabu-boot-systemd %{_prefix}/lib/nabu-boot/managers/systemd-boot.selected %{_datadir}/nabu/bootloader/systemd-boot/ %files -n nabu-boot-refind %{_prefix}/lib/nabu-boot/managers/refind.selected %files -n nabu-boot-limine %license manager/LICENSE-limine-BSD-2-Clause %{_prefix}/lib/nabu-boot/managers/limine.selected %{_datadir}/nabu/bootloader/limine/ %changelog * Tue Aug 25 2026 SENEMOS Project - 2.0.0-2.test - Keep authorized Xiaomi firmware as a weak dependency so the public COPR graph remains solvable without redistributing proprietary payloads. - Retain the runtime initramfs gate that refuses a UKI missing Nabu firmware. * Sun Aug 23 2026 SENEMOS Project - 2.0.0-1.test - Merge the shared UKI and ESP integration into one package. - Add mutually exclusive, automatically configured systemd-boot, rEFInd and Limine selectors while preserving Android EFI assets.